openwrt/openwrt.git
2 years agoramips: add support for ZyXEL LTE3301-Plus
André Valentin [Fri, 17 Jun 2022 19:35:03 +0000 (21:35 +0200)]
ramips: add support for ZyXEL LTE3301-Plus

The ZyXEL LTE3301-PLUS is an 4G indoor CPE with 2 external LTE antennas.

Specifications:

 - SoC: MediaTek MT7621AT
 - RAM: 256 MB
 - Flash: 128 MB MB NAND (MX30LF1G18AC)
 - WiFi: MediaTek MT7615E
 - Switch: 4 LAN ports (Gigabit)
 - LTE: Quectel EG506 connected by USB3 to SoC
 - SIM: 1 micro-SIM slot
 - USB: USB3 port
 - Buttons: Reset, WPS
 - LEDs: Multicolour power, internet, LTE, signal, Wifi, USB
 - Power: 12V, 1.5A

The device is built as an indoor ethernet to LTE bridge or router with
Wifi.

UART Serial:

57600N1
Located on populated 5 pin header J5:

 [o] GND
 [ ] key - no pin
 [o] RX
 [o] TX
 [o] 3.3V Vcc

MAC assignment:
lan:  98:0d:67:ee:85:54 (base, on the device back)
wlan: 98:0d:67:ee:85:55

Installation from web GUI:

- Log in as "admin" on http://192.168.1.1/
- Upload OpenWrt initramfs-recovery.bin image on the
  Maintenance -> Firmware page
- Wait for OpenWrt to boot and ssh to root@192.168.1.1
- format ubi device: ubiformat /dev/mtd6
- attach ubi device: ubiattach -m6
- create rootfs volume: ubimkvol /dev/ubi0 -n0 -N rootfs -s 1MiB
- rootfs_data volume: ubimkvol /dev/ubi0 -n1 -N rootfs_data -s 1MiB
- run sysupgrade with sysupgrade image

For more details about flashing see
commit 2449a632084b ("ramips: mt7621: Add support for ZyXEL NR7101").

Please note that this commit is needed:
firmware-utils: add marcant changes for ZyXEL NBG6716 and LTE3301-PLUS

Signed-off-by: André Valentin <avalentin@marcant.net>
2 years agoath79: add support for Sophos AP15
Manuel Niekamp [Wed, 22 Jun 2022 20:56:29 +0000 (22:56 +0200)]
ath79: add support for Sophos AP15

The Sophos AP15 seems to be very close to Sophos AP55/AP100.

Based on:
commit 6f1efb289837 ("ath79: add support for Sophos AP100/AP55 family")
author    Andrew Powers-Holmes <andrew@omnom.net>
          Fri, 3 Sep 2021 15:53:57 +0200 (23:53 +1000)
committer Hauke Mehrtens <hauke@hauke-m.de>
          Sat, 16 Apr 2022 16:59:29 +0200 (16:59 +0200)

Unique to AP15:
 - Green and yellow LED
 - 2T2R 2.4GHz 802.11b/g/n via SoC WMAC
 - No buttons
 - No piezo beeper
 - No 5.8GHz

Flashing instructions:
 - Derived from UART method described in referenced commit, methods
   described there should work too.
 - Set up a TFTP server; IP address has to be 192.168.99.8/24
 - Copy the firmware (initramfs-kernel) to your TFTP server directory
   renaming it to e.g. boot.bin
 - Open AP's enclosure and locate UART header (there is a video online)
 - Terminal connection parameters are 115200 8/N/1
 - Connect TFTP server and AP via ethernet
 - Power up AP and cancel autoboot when prompted
 - Prompt shows 'ath> '
 - Commands used to boot:
    ath> tftpboot 0x81000000 boot.bin
    ath> bootm 0x81000000
 - Device should boot OpenWRT
 - IP address after boot is 192.168.1.1/24
 - Connect to device via browser
 - Permanently flash using the web ui (flashing sysupgrade image)
 - (BTW: the AP55 images seem to work too, only LEDs are not working)

Testing done:
 - To be honest: Currently not so much testing done.
 - Flashed onto two devices
 - Devices are booting
 - MAC addresses are correct
 - LEDs are working
 - Scanning for WLANs is working

Big thanks to all the people working on this great project!
(Sorry about my english, it is not my native language)

Signed-off-by: Manuel Niekamp <m.niekamp@richter-leiterplatten.de>
2 years agoath79: add variant UniFi AP LR
Jan-Niklas Burfeind [Mon, 11 Jul 2022 20:43:00 +0000 (22:43 +0200)]
ath79: add variant UniFi AP LR

The hardware difference is the antenna which has a higher gain compared
to the original UniFi AP.

The variant was supported before in ar71xx.

Signed-off-by: Jan-Niklas Burfeind <git@aiyionpri.me>
2 years agoath79: rename references of UniFi to UniFi AP
Jan-Niklas Burfeind [Mon, 11 Jul 2022 20:42:59 +0000 (22:42 +0200)]
ath79: rename references of UniFi to UniFi AP

extract the compatible and model to make room for other variants

follow-up of
commit dc23df8a8ca7 ("ath79: change Ubiquiti UniFi AP model name to include "AP"")

Signed-off-by: Jan-Niklas Burfeind <git@aiyionpri.me>
2 years agoramips: mt7628: fix memory controller reset bit
Reto Schneider [Fri, 11 Jun 2021 09:19:51 +0000 (11:19 +0200)]
ramips: mt7628: fix memory controller reset bit

According to MediaTek MT7688 Datasheet v1.4, as well as the MT7628
counterpart, the memory controller reset bit (MC_RST) is 10, not 20.
Reset bit 20 is used for for UART 2 (UART2_RST).

Please note: Due to the lack of hardware, I was not able to test this
change.

Signed-off-by: Reto Schneider <reto.schneider@husqvarnagroup.com>
2 years agoramips: add support for Netcore NW5212
David Yang [Sun, 6 Jun 2021 14:42:49 +0000 (22:42 +0800)]
ramips: add support for Netcore NW5212

This patch adds support for Netcore NW5212, provided by some carrier in
China.

Specifications:
--------------

* SoC: Mediatek MT7620A
* RAM: 128MB DDR2
* Flash: 16MB SPI NOR flash (Winbond W25Q128BV)
* WiFi 2.4GHz: builtin
* Ethernet: builtin
* LED: Power, WAN, LAN 1-4, WiFi
* Buttons: Reset (GPIO 13)
* UART: Serial console (57600 8n1)
* USB: 1 x USB2

Installation:
------------

The router comes with OpenWrt 14.07 built with MTK SDK. However, as the
modem is provided by carriers, so the web interface is highly minimized and
only contains a static page with no interaction options.

There are two possible ways to gain the access.

1) Open the shell and use a UART2USB convert to gain TTY access. Please
   notice you have to remove resistance R54 at the back of the board
   otherwise you won't be able to input anything.
2) Use built-in backdoor. Access http://192.168.1.1/cgi-bin/_/testxst to
   start dropbear service at port 9122. Be warned the software is super
   old and only diffie-hellman-group1-sha1, diffie-hellman-group14-sha1,
   kexguess2@matt.ucc.asn.au is support, you may not be able to connect it
   with an up-to-date ssh client.

After you can control the device, flash the firmware as usual. Here are
some hints for that.

Option 1 (via original firmware):

1) Setup HTTP server on your computer, for example:
     python3 -m http.server
2) Connect to the route and flash:
     cd /tmp
     wget http://<your-computer-host>/<your-firmware-name>
     mtd -r write <your-firmware-name> firmware

Option 2 (replacing u-boot via breed):

1) Download breed-mt7620-reset13.bin from https://breed.hackpascal.net/
2) Setup HTTP server on your computer, for example:
     python3 -m http.server
   You can skip this step if your breed is already accessible from HTTP,
   since the original wget does not support HTTPS.
3) Connect to the route and flash breed:
     cd /tmp
     wget http://<your-computer-host>/breed-mt7620-reset13.bin
     mtd write breed-mt7620-reset13.bin Bootloader
4) Reboot. Hold reset key or press any key in TTY to enter breed.
5) Access breed web interface (http://192.168.1.1/). Choose the flash
   layout to be 0x50000 and flash new firmware.

MAC addresses:
-------------

There are three MACs stored in factory, as in MT7620A reference design:

source address   usage
   0x4 label     WLAN
  0x28 label     MAC 1
  0x2e label + 1 MAC 2

However, the OEM firmware only uses one single MAC (label) for all
interfaces, probably a misconfiguration.

Signed-off-by: David Yang <mmyangfl@gmail.com>
2 years agoramips: add support for Netgear PR2000
David Yang [Tue, 8 Jun 2021 16:53:27 +0000 (00:53 +0800)]
ramips: add support for Netgear PR2000

This patch adds support for Netgear PR2000, sold as "Travel Router and
Range Extender".

Specifications:
--------------

* SoC: Mediatek MT7620N
* RAM: 64MB DDR2
* Flash: 16MB SPI NOR flash (Macronix MX25L12805D)
* WiFi 2.4GHz: builtin
* Ethernet: builtin
* LED: Power, Internet, WiFi, USB
* Buttons: Reset (GPIO 1/2)
* UART: Serial console (57600 8n1)
* USB: 1 x USB2

SPECIAL NOTES:
-------------

Problem: WiFi is super weak, but SSID beacons seems to be right.

Solve: Change 36h in factory partition (namely 0xf60036) to be 0x0.

Explain: Clearly Netgear have different ideas on how EEPROM is used. Bit 2
of 36h indicates the presence of External LNA for 11g (2.4 GHz) band,
which seems to be incorrectly set by Netgear (originally 0x04). Lifting it
solves the problem of weak RX signal.

Installation:
------------

There are two possible ways to install the firmware. Flashing via web
interface of original firmware is not tested due to a broken firmware.

1) Open the shell and use a UART2USB convert to gain TTY access (TP7: RXD,
   TP9: TXD, TP10: GND). Please notice you have to remove resistance R54
   next to TP7 otherwise you won't be able to input anything.
2) Use well-known Netgear debug switch. Access
   http://192.168.168.1/setup.cgi?todo=debug to start telnet service
   (username: root, password: <none>).

Please back up firmware if you want to go back to the original.

After you can control the device, flash the firmware as usual. Here are
some hints for that.

Option 1 (via nmrpflash):

1) Download nmrpflash from https://github.com/jclehner/nmrpflash
2) Use *-factory.img and flash:
     nmrpflash -L
     nmrpflash -i net* -f <your-firmware-name>
3) Turn off then turn on the device, wait it finishing flash.

Option 2 (replacing u-boot via breed):

1) Download breed-mt7620-reset1.bin from https://breed.hackpascal.net/
2) Setup HTTP server on your computer, for example:
     python3 -m http.server
   You can skip this step if your breed is already accessible from HTTP,
   since the original wget does not support HTTPS.
3) Connect to the route and flash breed:
     cd /tmp
     wget http://<your-computer-host>/breed-mt7620-reset1.bin
     dd if=breed-mt7620-reset1.bin of=/dev/mtdblock0 bs=64k
4) Reboot. Hold reset key or press any key in TTY to enter breed.
5) Access breed web interface (http://192.168.1.1/). Choose memory layout
   to be 0x40000 and flash new firmware.

Remark:
------

As a "Range Extender", it has a switch to switch between Wired mode (GPIO
21 low) and Wireless mode (GPIO 20 low), which is not implemented in this
patch. However, the router will be turned off when it switches to the
middle, which makes this switch much less useful.

MAC addresses:
-------------

The OEM firmware uses one single MAC for all interfaces, located at
0xf700b0.

Signed-off-by: David Yang <mmyangfl@gmail.com>
2 years agoramips: adding support for Asus RP-AC56
Lea Teuberth [Wed, 27 Jul 2022 15:50:40 +0000 (17:50 +0200)]
ramips: adding support for Asus RP-AC56

Specifications:
CPU:     MT7621A dual-core 880MHz
RAM:     64MB DDR2
FLASH:   16MB MX25L12805D NOR SPI
WIFI:    2.4GHz 2x2 MT7603 b/g/n PCI
WIFI:    5GHz 2x2 MT7662 a/b/ac PCI
ETH:     1xLAN 1000base-T integrated
SWITCH:  MT7530 Port 0: LAN, Port 6: CPU
LED:     Power, 2.4GHz WiFi, 5GHz WiFi
BTN:     WPS, Reset
UART:    Near ETH port, from ETH: 3V3-TxD-GND-RxD 57600 8n1
MISC:    Audio support

Installation:
1. Update using recovery mode
   - while holdig "reset" button, power on the device
   - keep holding "reset" until power led is flashing yellow
   - set own IP to 192.168.1.75, subnet mask: 255.255.255.0
   - push firmware image (can be factory.bin or sysupgrade.bin)
     using tftp client in binary mode to 192.168.1.1

Notes:
This board has only two MAC addresses programmed in the "factory" partition:
- MAC for wlan0 (2.4GHz) at offset 0x0004
- MAC for wlan1 (5GHz) at offset 0x8004
- stock firmware re-uses wlan0 MAC for ethernet
- no valid addresses found in 0x28, 0x2e, 0xe000 and 0xe006

Signed-off-by: Lea Teuberth <lea.teuberth@outlook.com>
2 years agotrace-cmd: update to v3.1.2
Nick Hainke [Sat, 2 Jul 2022 19:50:36 +0000 (21:50 +0200)]
trace-cmd: update to v3.1.2

Remove outdated patches:
- 100-musl.patch
- 110-mac80211_tracepoint.patch

Trace-cmd now uses libtracefs and livtraceevent as libraries.
The plugins moved to libtraceevent.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2 years agolibtracefs: add Linux kernel trace file system library
Nick Hainke [Sat, 2 Jul 2022 19:49:37 +0000 (21:49 +0200)]
libtracefs: add Linux kernel trace file system library

Needed by trace-cmd.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2 years agolibtraceevent: add Linux kernel trace event library
Nick Hainke [Sat, 2 Jul 2022 19:48:18 +0000 (21:48 +0200)]
libtraceevent: add Linux kernel trace event library

Needed by trace-cmd.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2 years agoelfutils: update to 0.187
Nick Hainke [Wed, 3 Aug 2022 05:13:08 +0000 (07:13 +0200)]
elfutils: update to 0.187

Changes:
debuginfod: Support -C option for connection thread pooling.

debuginfod-client: Negative cache file are now zero sized instead of
                   no-permission files.

addr2line: The -A, --absolute option, which shows file names including
           the full compilation directory is now the default.  To get the
           old behavior use the new option --relative.

readelf, elflint: Recognize FDO Packaging Metadata ELF notes

libdw, debuginfo-client: Load libcurl lazily only when files need to
                         be fetched remotely. libcurl is now never
                         loaded when DEBUGINFOD_URLS is unset. And when
                         DEBUGINFOD_URLS is set, libcurl is only loaded
                         when the debuginfod_begin function is called.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2 years agobase-files: LED/trigger/heartbeat: Add support for inversion
Olliver Schinagl [Sun, 31 Jul 2022 08:11:58 +0000 (10:11 +0200)]
base-files: LED/trigger/heartbeat: Add support for inversion

The heartbeat trigger has the option to be inverted, however
openwrt/uci/luci have no way to set this.

This patch adds this support.

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
2 years agobase-files: LED/gpio: Ensure inverted is read as a boolean
Olliver Schinagl [Sun, 31 Jul 2022 08:19:09 +0000 (10:19 +0200)]
base-files: LED/gpio: Ensure inverted is read as a boolean

The sysfs interface for the GPIO takes a boolean value. Ensure we get
one from uci.

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
2 years agokernel: bump 5.10 to 5.10.135
John Audia [Wed, 3 Aug 2022 18:32:51 +0000 (14:32 -0400)]
kernel: bump 5.10 to 5.10.135

All patches automatically rebased.

Signed-off-by: John Audia <therealgraysky@proton.me>
2 years agokernel: bump 5.15 to 5.15.59
John Audia [Wed, 3 Aug 2022 18:15:01 +0000 (14:15 -0400)]
kernel: bump 5.15 to 5.15.59

Patches automatically rebased.

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

Signed-off-by: John Audia <therealgraysky@proton.me>
2 years agozlib: backport fix for heap-based buffer over-read (CVE-2022-37434)
Petr Štetiar [Sat, 6 Aug 2022 12:55:07 +0000 (14:55 +0200)]
zlib: backport fix for heap-based buffer over-read (CVE-2022-37434)

zlib through 1.2.12 has a heap-based buffer over-read or buffer overflow
in inflate in inflate.c via a large gzip header extra field. NOTE: only
applications that call inflateGetHeader are affected. Some common
applications bundle the affected zlib source code but may be unable to
call inflateGetHeader.

Fixes: CVE-2022-37434
References: https://github.com/ivd38/zlib_overflow
Signed-off-by: Petr Štetiar <ynezz@true.cz>
2 years agogeneric: 5.15: disable CONFIG_DEBUG_INFO_REDUCED symbol
Petr Štetiar [Fri, 5 Aug 2022 08:58:43 +0000 (10:58 +0200)]
generic: 5.15: disable CONFIG_DEBUG_INFO_REDUCED symbol

This came up during build testing of mvebu/cortexa9 target with 5.15
kernel.

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2 years agorealtek: add support for Panasonic Switch-M48eG PN28480K
INAGAKI Hiroshi [Fri, 3 Sep 2021 09:58:09 +0000 (18:58 +0900)]
realtek: add support for Panasonic Switch-M48eG PN28480K

Panasonic Switch-M48eG PN28480K is a 48 + 4 port gigabit switch, based on
RTL8393M.

Specification:

- SoC           : Realtek RTL8393M
- RAM           : DDR3 128 MiB (Winbond W631GG8KB-15)
- Flash         : SPI-NOR 32 MiB (Macronix MX25L25635FMI-10G)
- Ethernet      : 10/100/1000 Mbps x48 + 2
  - port  1-40  : TP, RTL8218B x5
  - port 41-48  : RTL8218FB
    - port 41-44: TP
    - port 45-48: TP/SFP (Combo)
- 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: pn28480k_v30000.rom)
    and place it to the TFTP directory
4.  Boot M48eG 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 pn28480k_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 'sleep 10; bootm;'
    saveenv

    'sleep 10;' is required as dummy to execute 'bootm' command correctly

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

Known Issues:

- 4x SFP ports are provided as combo ports by the RTL8218FB chip, but the
  phy driver has no support for it. Currently, only TP ports work by the
  RTL8218B support.

Note:

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

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

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

- 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".

- A GPIO pin on PCA9539 is used for resetting external RTL8218B phys and
  RTL8218FB phy.
  This should be specified as "reset-gpios" property in MDIO node, but
  the current configuration of RTL8218B phy in the driver seems to be
  incomplete and RTL8218FB won't be configured on RTL8218D support.
  So, ethernet ports on these phys will be broken after hard-resetting.
  At the moment, configure this pin as gpio-hog to avoid breaking by
  resetting.

- This model has 2x Microchip TCN75A thermal sensors. Linux Kernel
  supports TCN75 chip on lm75 driver, but no support for TCN75'A'
  variant.
  At the moment, use TCN75 support for the chips instead.

Back to the stock firmware:

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

   on U-Boot:

     setenv loadaddr
     setenv bootcmd 'ffsrdm c:/runtime.had 0x81000000;alphadec c:/runtime.had 0x81000240 0x80010000;'

   on OpenWrt:

     fw_setenv loadaddr
     fw_setenv bootcmd 'ffsrdm c:/runtime.had 0x81000000;alphadec c:/runtime.had 0x81000240 0x80010000;'

2. Perform reset or reboot

  on U-Boot:

    reset

  on OpenWrt:

    reboot

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2 years agorealtek: enable pca953x GPIO driver for rtl839x subtarget
INAGAKI Hiroshi [Sun, 24 Jul 2022 09:03:37 +0000 (18:03 +0900)]
realtek: enable pca953x GPIO driver for rtl839x subtarget

The system status LED on Panasonic Switch-M48eG PN28480K 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>
2 years agorealtek: add support for Panasonic Switch-M24eG PN28240K
INAGAKI Hiroshi [Sun, 25 Apr 2021 08:06:03 +0000 (17:06 +0900)]
realtek: add support for Panasonic Switch-M24eG PN28240K

Panasonic Switch-M24eG PN28240K is a 24 + 2 port gigabit switch, based on
RTL8382M.

Specification:

- SoC           : Realtek RTL8382M
- RAM           : DDR3 128 MiB (Winbond W631GG8KB-15)
- Flash         : SPI-NOR 32 MiB (Macronix MX25L25635FMI-10G)
- Ethernet      : 10/100/1000 Mbps x24 + 2
  - port  1-8   : TP, RTL8218B
  - port  9-16  : TP, RTL8218B (SoC)
  - port 17-24  : RTL8218FB
    - port 17-22: TP
    - port 23-24: TP/SFP (Combo)
- 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: pn28240k_v30000.rom)
    and place it to the TFTP directory
4.  Boot M24eG 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 pn28240k_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

Known Issues:

- 2x SFP ports are provided as combo ports by the RTL8218FB chip, but the
  phy driver has no support for it. Currently, only TP ports work by the
  RTL8218D support.

Note:

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

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

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

- 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".

- A GPIO pin on PCA9539 is used for resetting external RTL8218B phy and
  RTL8218FB phy.
  This should be specified as "reset-gpios" property in MDIO node, but
  the current configuration of RTL8218B phy in the phy driver seems to
  be incomplete and RTL8218FB won't be configured on RTL8218D support.
  So, ethernet ports on these phys will be broken after hard-resetting.
  At the moment, configure this pin as gpio-hog to avoid breaking by
  resetting.

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>
2 years agorealtek: add support for Panasonic Switch-M16eG PN28160K
INAGAKI Hiroshi [Sun, 25 Apr 2021 08:06:03 +0000 (17:06 +0900)]
realtek: add support for Panasonic Switch-M16eG PN28160K

Panasonic Switch-M16eG PN28160K is a 16 + 2 port gigabit switch, based on
RTL8382M.

Specification:

- SoC           : Realtek RTL8382M
- RAM           : DDR3 128 MiB (Winbond W631GG8KB-15)
- Flash         : SPI-NOR 32 MiB (Macronix MX25L25635FMI-10G)
- Ethernet      : 10/100/1000 Mbps x16 + 2
  - port 1-8    : TP, RTL8218B (SoC)
  - port 9-16   : RTL8218FB
    - port  9-14: TP
    - port 15-16: TP/SFP (Combo)
- 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: pn28160k_v30003.rom)
    and place it to the TFTP directory
4.  Boot M16eG 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 pn28160k_v30003.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

Known Issues:

- 2x SFP ports are provided as combo ports by the RTL8218FB chip, but the
  phy driver has no support for it. Currently, only TP ports work by the
  RTL8218D support.

Note:

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

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

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

- 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".

- A GPIO pin on PCA9539 is used for resetting external RTL8218FB phy.
  This should be specified as "reset-gpios" property in MDIO node, but
  RTL8218FB won't be configured on RTL8218D support in the phy driver.
  So, ethernet ports on the phy will be broken after hard-resetting.
  At the moment, configure this pin as gpio-hog to avoid breaking by
  resetting.

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>
2 years agoodhcp6c: update to git HEAD
Hans Dedecker [Fri, 5 Aug 2022 16:29:05 +0000 (18:29 +0200)]
odhcp6c: update to git HEAD

7d21e8d dhcpv6: add option to ignore stateless advertise

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2 years agokernel: silence refresh warning
Christian Lamparter [Fri, 5 Aug 2022 10:42:09 +0000 (12:42 +0200)]
kernel: silence refresh warning

|Warning: trailing whitespace in line 66 of drivers/mtd/parsers/Kconfig

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 years agolantiq: fix lan port 3+4 phy-mode settings for Fritzbox 3390
Daniel Kestrel [Fri, 5 Aug 2022 08:35:07 +0000 (10:35 +0200)]
lantiq: fix lan port 3+4 phy-mode settings for Fritzbox 3390

There are forum reports that 2 LAN ports are still not working,
the phy-mode settings are adjusted to fix the problem.

Fixes: #10371
Signed-off-by: Daniel Kestrel <kestrel1974@t-online.de>
2 years agorealtek: Fix typo in Kconfig prompt
Olliver Schinagl [Thu, 4 Aug 2022 14:09:00 +0000 (16:09 +0200)]
realtek: Fix typo in Kconfig prompt

As the symbol RTL930x shows, the bool enables the RTL930x platform, not
the RTL839x one.

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
(slightly changed commit subject)
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 years agoumdns: add missing syscall to seccomp filter
Chen Minqiang [Sat, 30 Jul 2022 21:04:58 +0000 (05:04 +0800)]
umdns: add missing syscall to seccomp filter

There is some syscall missing:
'getdents64'
'getrandom'
'statx'
'newfstatat'

Found with:
'mkdir /etc/umdns; ln -s /tmp/1.json /etc/umdns/; utrace /usr/sbin/umdns'

Signed-off-by: Chen Minqiang <ptpt52@gmail.com>
2 years agoath79: add LTE led for GL.iNet GL-XE300
Leo Soares [Sun, 31 Jul 2022 14:28:47 +0000 (15:28 +0100)]
ath79: add LTE led for GL.iNet GL-XE300

This commit adds the LTE led for GL.iNet GL-XE300
to the default leds config.

Signed-off-by: Leo Soares <leo@hyper.ag>
2 years agoramips: fix fw_setsys
Wenli Looi [Mon, 1 Aug 2022 03:23:22 +0000 (03:23 +0000)]
ramips: fix fw_setsys

This change was included in the original pull request but later omitted
for some reason:

https://github.com/openwrt/openwrt/pull/4936

Signed-off-by: Wenli Looi <wlooi@ucalgary.ca>
2 years agoramips: support fw_printenv for Netgear WAX202
Wenli Looi [Mon, 1 Aug 2022 03:22:32 +0000 (03:22 +0000)]
ramips: support fw_printenv for Netgear WAX202

Config partition contains uboot env for the first 0x20000 bytes.
The rest of the partition contains other data including the device MAC
address and the password printed on the label.

Signed-off-by: Wenli Looi <wlooi@ucalgary.ca>
2 years agokernel: add kmod-usb-hid-mcp2221
Leo Soares [Sun, 31 Jul 2022 14:21:42 +0000 (15:21 +0100)]
kernel: add kmod-usb-hid-mcp2221

"The MCP2221 is a USB-to-UART/I2C serial converter which enables
USB connectivity in applications that have a UART and I2C interfaces."
<https://www.microchip.com/en-us/product/MCP2221>

Signed-off-by: Leo Soares <leo@hyper.ag>
(replaced GPIOLIB KConfig with @GPIO_SUPPORT)
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 years agokernel: usb-serial-cp210x: @GPIO_SUPPORT
Christian Lamparter [Fri, 5 Aug 2022 09:35:08 +0000 (11:35 +0200)]
kernel: usb-serial-cp210x: @GPIO_SUPPORT

all other drivers depend on @GPIO_SUPPORT rather than
forcing CONFIG_GPIOLIB=y.

(I wonder what would happen if someone decides to try
UML with USBIP?)

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 years agox86: add missing Lex 3I380NX network detection
Paul Spooren [Tue, 19 Jul 2022 13:24:59 +0000 (15:24 +0200)]
x86: add missing Lex 3I380NX network detection

The Lex 3I380NX industrial PC has 4 ethernet controllers on board
which need pmc_plt_clk0 - 3 to function, add it to the critclk_systems
DMI table, so that drivers/clk/x86/clk-pmc-atom.c will mark the clocks
as CLK_CRITICAL and they will not get turned off.

This commit is nearly redundant to 3d0818f5eba8 ("platform/x86:
pmc_atom: Add Lex 3I380D industrial PC to critclk_systems DMI table")
but for all Lex Baytrail devices.

The original vendor firmware is only available using the WaybackMachine:
http://www.lex.com.tw/products/3I380NX.html

Signed-off-by: Michael Schöne <michael.schoene@rhebo.com>
Signed-off-by: Paul Spooren <paul.spooren@rhebo.com>
(Hans broader version for more Lex Baytrail systems, v5.15)
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 years agoltq-vdsl-app: Fix counter overflow resulting in negative values
Roland Barenbrug [Wed, 29 Jun 2022 11:09:25 +0000 (13:09 +0200)]
ltq-vdsl-app: Fix counter overflow resulting in negative values

The re-transmit counters can overflow the 32 bit representation resulting
in negative values being displayed. Background being that the numbers are
treated at some point as signed INT rather than unsigned INT.
Change the counters from 32 bit to 64 bit, should provide sufficient room
to avoid any overflow. Not the nicest solution but it works

Fixes: #10077
Signed-off-by: Roland Barenbrug <roland@treslong.com>
Acked-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
2 years agolibmnl: fix build when bash is not located at /bin/bash
Mark Mentovai [Sun, 10 Jul 2022 23:43:05 +0000 (19:43 -0400)]
libmnl: fix build when bash is not located at /bin/bash

This fixes the libmnl build on macOS, which ships with an outdated bash
at /bin/bash. During the OpenWrt build, a modern host bash is built and
made available at staging_dir/host/bin/bash, which is present before
/bin/bash in the build's PATH.

This is similar to 8f7ce3aa6dda, presently appearing at
package/kernel/mac80211/patches/build/001-fix_build.patch.

Signed-off-by: Mark Mentovai <mark@mentovai.com>
2 years agoramips: add support for H3C TX1800 Plus / TX1801 Plus / TX1806
Shiji Yang [Sun, 20 Mar 2022 15:42:37 +0000 (23:42 +0800)]
ramips: add support for H3C TX1800 Plus / TX1801 Plus / TX1806

H3C TX180x series WiFi6 routers are customized by different carrier.
While these three devices look different, they use the same motherboard
inside. Another minor difference comes from the model name definition
in the u-boot environment variable.

Specifications:
 SOC:      MT7621 + MT7915
 ROM:      128 MiB
 RAM:      256 MiB
 LED:      status *2
 Button:   reset *1 + wps/mesh *1
 Ethernet:        lan *3 + wan *1 (10/100/1000Mbps)
 TTL Baudrate:    115200
 TFTP server IP:  192.168.124.99

MAC Address:
 use        address(sample 1)   address(sample 2)    source
 label      88:xx:xx:98:xx:12   88:xx:xx:a2:xx:a5   u-boot-env@ethaddr
 lan        88:xx:xx:98:xx:13   88:xx:xx:a2:xx:a6   $label +1
 wan        88:xx:xx:98:xx:12   88:xx:xx:a2:xx:a5   $label
 WiFi4_2G   8a:xx:xx:58:xx:14   8a:xx:xx:52:xx:a7   (Compatibility mode)
 WiFi5_5G   8a:xx:xx:b8:xx:14   8a:xx:xx:b2:xx:a7   (Compatibility mode)
 WiFi6_2G   8a:xx:xx:18:xx:14   8a:xx:xx:12:xx:a7
 WiFi6_5G   8a:xx:xx:78:xx:14   8a:xx:xx:72:xx:a7

Compatibility mode is used to guarantee the connection of old devices
that only support WiFi4 or WiFi5.

TFTP + TTL Installation:
Although a TTL connection is required for installation, we do not need
to tear down it. We can find the TTL port from the cooling hole at the
bottom. It is located below LAN3 and the pins are defined as follows:
|LAN1|LAN2|LAN3|----|WAN|
--------------------
    |GND|TX|RX|VCC|

1. Set tftp server IP to 192.168.124.99 and put initramfs firmware in
   server's root directory, rename it to a simple name "initramfs.bin".
2. Plug in the power supply and wait for power on, connect the TTL cable
   and open a TTL session, enter "reboot", then enter "Y" to confirm.
   Finally push "0" to interruput boot while booting.
3. Execute command to install a initramfs system:
   # tftp 0x80010000 192.168.124.99:initramfs.bin
   # bootm 0x80010000
4. Backup nand flash by OpenWrt LuCI or dd instruction. We need those
   partitions if we want to back to stock firmwre due to official
   website does not provide download link.
   # dd if=/dev/mtd1 of=/tmp/u-boot-env.bin
   # dd if=/dev/mtd4 of=/tmp/firmware.bin
5. Edit u-boot env to ensure use default bootargs and first image slot:
   # fw_setenv bootargs
   # fw_setenv bootflag 0
6. Upgrade sysupgrade firmware.
7. About restore stock firmware: flash the "firmware" and "u-boot-env"
   partitions that we backed up in step 4.
   # mtd write /tmp/u-boot-env.bin u-boot-env
   # mtd write /tmp/firmware.bin firmware

Additional Info:
The H3C stock firmware has a 160-byte firmware header that appears to
use a non-standard CRC32 verification algorithm. For this part of the
data, the u-boot does not check it so we can just directly replace it
with a placeholder.

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
2 years agokernel: bump 5.15 to 5.15.58
John Audia [Fri, 29 Jul 2022 16:07:55 +0000 (12:07 -0400)]
kernel: bump 5.15 to 5.15.58

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 <therealgraysky@proton.me>
2 years agox86: update defconfig for 5.15.57
John Audia [Mon, 25 Jul 2022 12:27:13 +0000 (08:27 -0400)]
x86: update defconfig for 5.15.57

Add some new/missing symbols relating to speculative execution mitigations[1].

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

Signed-off-by: John Audia <therealgraysky@proton.me>
2 years agokernel: bump 5.15 to 5.15.57
John Audia [Sat, 23 Jul 2022 19:21:20 +0000 (15:21 -0400)]
kernel: bump 5.15 to 5.15.57

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 <therealgraysky@proton.me>
2 years agokernel: bump 5.15 to 5.15.56
John Audia [Thu, 21 Jul 2022 20:12:42 +0000 (16:12 -0400)]
kernel: bump 5.15 to 5.15.56

Manually rebased:
  bcm27xx/patches-5.15/950-0470-sound-usb-add-device-quirks-for-A4Tech-FHD-1080p-web.patch

Remove upstreamed:
  bcm27xx/patches-5.15/950-0060-tty-amba-pl011-Add-un-throttle-support.patch[1]

All other patches automatically rebased.

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.56&id=2db3b95166f72e6481a79b82b1d6f94f4b18fcc1

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

Signed-off-by: John Audia <therealgraysky@proton.me>
2 years agokernel: bump 5.15 to 5.15.55
John Audia [Fri, 15 Jul 2022 12:20:36 +0000 (08:20 -0400)]
kernel: bump 5.15 to 5.15.55

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 <therealgraysky@proton.me>
2 years agokernel: bump 5.15 to 5.15.54
John Audia [Tue, 12 Jul 2022 15:52:59 +0000 (11:52 -0400)]
kernel: bump 5.15 to 5.15.54

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 <therealgraysky@proton.me>
2 years agoarm-trusted-firmware-mvebu: update cm3 gcc to 11.2
Andre Heider [Tue, 21 Jun 2022 12:32:50 +0000 (14:32 +0200)]
arm-trusted-firmware-mvebu: update cm3 gcc to 11.2

https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/downloads

Signed-off-by: Andre Heider <a.heider@gmail.com>
2 years agoarm-trusted-firmware-mvebu: update to v2.7
Andre Heider [Tue, 21 Jun 2022 12:09:56 +0000 (14:09 +0200)]
arm-trusted-firmware-mvebu: update to v2.7

Remove the backported patches and add another to allow building with the
OpenWrt build system.

Signed-off-by: Andre Heider <a.heider@gmail.com>
2 years agoarm-trusted-firmware-mvebu: bump mox-boot-builder to v2022.06.11
Andre Heider [Tue, 21 Jun 2022 12:09:40 +0000 (14:09 +0200)]
arm-trusted-firmware-mvebu: bump mox-boot-builder to v2022.06.11

Remove the gold patch, since upstream doesn't hardcode it anymore.

406454d wtmi: Don't print another newline on standalone build
ec97868 Bump mox-imager commit
e4c4b9d wtmi: Call main from C code in startup
4c1d3ff wtmi: Move startup assmebly to C file as inline assmebly
ee570ea wtmi: Indent Makefiles
18a7c0b wtmi: Use -f{function,data}-sections and --gc-sections
47ad100 wtmi: Use bfd linker instead of gold
5e34aa1 wtmi: Keep .data* and .bss* sections in linker scripts
7a4e3d2 wtmi: compressed, reload_helper: Discard .ARM* section
d943726 wtmi: compressed: Keep main function in linker script
d4f0fc6 wtmi: Keep main function in linker script
092148c wtmi: Fix -Warray-bounds warning
469e1b6 wtmi: Add do_div() implementation from Linux
90f46a0 Bump mox-imager commit
8bc6254 wtmi: Always use gold and link with --rosegment and --gc-sections flags
0b68a33 wtmi: Implement Marvell's OTP write commands
53d2a1c Bump mox-imager commit
b4c34b4 Rename arm-trusted-firmware to trusted-firmware-a
5f79ace Sync mox-imager submodule URL
a1cdd32 Sync TF-A submodule URL
58ef1af Sync u-boot submodule URL
90d28e1 wtmi: Check argument validity in Marvell's CMD_OTP_READ_1B command more
3a48cf1 Bump mox-imager commit
807a3e1 wtmi: Implement Marvell's OTP read commands
77b1232 wtmi: Enable OTP read/write mailbox commands
9724d41 wtmi: Add is_secure_boot()
03de0c1 Bump mox-imager commit
2133601 wtmi: Fix efuse_write_row_with_ecc_lock() for masked ECC rows
545a89f wtmi: Don't allow masked rows in efuse_write_row_with_ecc_lock()
94ebc98 wtmi: Don't program already programmed bits in efuse_raw_write()
2369750 wtmi: Remove inline specifier from is_row_masked()
53e2636 wtmi: Use ARRAY_SIZE()
cc3e23b wtmi: Remove duplicate checks
89d24be Makefile: ignore clean target errors
9ee8b8d Bump mox-imager commit
489262b Bump mox-imager commit
79d2f32 deploy: Print board type in deploy output
78f15b0 deploy: Print board version without board type bits in deploy output
e69fdfa deploy: Always determine 512 MiB RAM when deploying RIPE Atlas Probe
d1f7d07 deploy: Write eMMC Boot Mode into OTP when deploying RIPE Atlas Probe
d43a089 Bump mox-imager commit
49ac21d deploy: Use get_ram_size() from ddr.c
1e7705d Print DDR type and size when initializing
6f85e72 Move get_ram_size() to ddr.c
edb1079 wtmi: Rename Atlas_RIPE to RIPE_Atlas
e6a3aee wtmi: Inform about board type in CMD_BOARD_INFO
50aeae5 wtmi: Read only bits 53:48 of row eFuse 42 as board version
b882398 wtmi: Add README.md (document OTP content)
c068431 wtmi: Add ARRAY_SIZE() macro
4af2317 wtmi: Use 50 MHz as SPI clock rate
226fc5c wtmi: Add fast spi_write() function
518c914 wtmi: clock: Check for zero loops, not argument, in ndelay() / udelay()
89a21c5 wtmi: Fix comment
7b3e11a wtmi: Add clk command to print xtal and TBG clock rates
5127638 wtmi: Use the signed keyword when defining signed types
fb31ed2 wtmi: Fix DDR training failure check
1b1b938 wtmi: clock: Check for zero in ndelay() / udelay()
c0ee09a wtmi: Print correct DDR version in debug message
edfb875 Bump mox-imager commit
85cb5e3 Bump mox-imager commit
c4e9334 wtmi: debug: interpret char 127 as backspace
a778fd9 Bump mox-imager commit

Signed-off-by: Andre Heider <a.heider@gmail.com>
2 years agoarm-trusted-firmware-mvebu: bump mv-ddr-marvell to current version
Andre Heider [Tue, 21 Jun 2022 12:09:21 +0000 (14:09 +0200)]
arm-trusted-firmware-mvebu: bump mv-ddr-marvell to current version

6ff988f mv_ddr: a3700: Use the right size for memset to not overflow
0f3e893 mv_ddr: a38x: fix BYTE_HOMOGENEOUS_SPLIT_OUT decision
4bae770 mv_ddr: a38x: fix SPLIT_OUT_MIX state decision
cdefd8b mv_ddr: a38x: Fix Synchronous vs Asynchronous mode determination
8c42ad9 mv_ddr_4_training: cast uint64_t to unsigned long long

Signed-off-by: Andre Heider <a.heider@gmail.com>
2 years agoarm-trusted-firmware-mvebu: bump a3700-utils to current version
Andre Heider [Tue, 21 Jun 2022 12:08:55 +0000 (14:08 +0200)]
arm-trusted-firmware-mvebu: bump a3700-utils to current version

1d97715 wtmi: Discard ELF symbols from firmware binary
2d2a21c wtmi: Allow access to the 43th OTP row
e733e9f Fix boot from SATA build
4392eaf wtmi: Fix sending status code of cmd execution
14b3c61 Wtpdownloader: Remove out-of-dated x86-64 ELF binary WtpDownload_linux
e345b95 Wtpdownloader: Fix setting tty c_cflag options
0c502d5 Wtpdownloader: Call HandlePendingMessages() after Port->WtpCmd is freed
d91761a Wtpdownloader: Fix memory leaks
bc11d18 Wtpdownloader: Check for number of read bytes prior touching read buffer
58db335 Wtpdownloader: Add missing check in SendContinuousForceConsoleMode() if byte was really read
a4029c0 Wtpdownloader: Fix 32/64-bit host detection
3679034 Wtpdownloader: Print missing newline at the end of output

Signed-off-by: Andre Heider <a.heider@gmail.com>
2 years agouboot-mvebu: update to v2022.07
Andre Heider [Mon, 11 Jul 2022 17:49:21 +0000 (19:49 +0200)]
uboot-mvebu: update to v2022.07

Remove one merged patch.

Signed-off-by: Andre Heider <a.heider@gmail.com>
Tested-by: Josef Schlehofer <pepe.schlehofer@gmail.com> [Turris Omnia]
2 years agotools/libressl: disable assembly code for all hosts
Michael Pratt [Wed, 20 Jul 2022 23:17:22 +0000 (19:17 -0400)]
tools/libressl: disable assembly code for all hosts

This SSL library is for hosts only
and not shipped as a build product,
therefore its performance quality (speed) is not critical.

Assembly code is broken in LibreSSL for some x86_64 hosts (part of git history)
and for some RISC host archs like armv7l, aarch64, powerpc, ppc64, etc...
so let's just disable it for all hosts.

For example, this fixes an instance on ARM hosts
where the host Python 3 builds broken modules which link to LibreSSL,
even with patches that enable LibreSSL support
with the import error "unexpected reloc type 3".

Ref: a395563f6 ("build: fix libressl build on x32 (amd64ilp32) host ")
Suggested-by: Andre Heider <a.heider@gmail.com>
Signed-off-by: Michael Pratt <mcpratt@pm.me>
2 years agotools/libressl: ensure PIC-only object compilation
Michael Pratt [Wed, 20 Jul 2022 23:14:10 +0000 (19:14 -0400)]
tools/libressl: ensure PIC-only object compilation

Line up configure arguments for cleaner git diff and editing and grepping.

LibreSSL must be built with PIC, and has the flags for it already in CFLAGS.
Add the configure option native to LibreSSL to use only PIC in objects,
which further enforces that each object in the library has the PIC flag
to prevent a mixture of PIC / non-PIC objects within it.

Ref: 96a940308 ("tools: libressl: always build as PIC")
Signed-off-by: Michael Pratt <mcpratt@pm.me>
2 years agomac80211: Update to version 5.15.58-1
Hauke Mehrtens [Sat, 30 Jul 2022 23:24:00 +0000 (01:24 +0200)]
mac80211: Update to version 5.15.58-1

This updates mac80211 to version 5.15.58-1 which is based on kernel
5.15.58.
The removed patches were applied upstream.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2 years agotools: bump 7z package to 22.01
Sander Vanheule [Sun, 31 Jul 2022 13:19:29 +0000 (15:19 +0200)]
tools: bump 7z package to 22.01

Version 22.00 of 7z causes build failures on systems using GCC 12 with
the following error:

    ../../../../C/LzmaEnc.c: In function 'LzmaEnc_CodeOneMemBlock':
    ../../../../C/LzmaEnc.c:2996:19: error: storing the address of local
    variable 'outStream' in '*p.rc.outStream' [-Werror=dangling-pointer=]
     2996 |   p->rc.outStream = &outStream.vt;
          |   ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
    ../../../../C/LzmaEnc.c:2979:28: note: 'outStream' declared here
     2979 |   CLzmaEnc_SeqOutStreamBuf outStream;
          |                            ^~~~~~~~~
    ../../../../C/LzmaEnc.c:2979:28: note: 'pp' declared here

Upgrade to version 22.01 which contains the required fix.

Fixes: 5fcc6f0f1942 ("tools: add 7z host package")
Suggested-by: Tomasz Maciej Nowak <tmn505@gmail.com>
Signed-off-by: Sander Vanheule <sander@svanheule.net>
2 years agoustream-ssl: prevent unused crypto lib dependencies from being compiled
Boris Krasnovskiy [Fri, 22 Jul 2022 15:06:38 +0000 (11:06 -0400)]
ustream-ssl: prevent unused crypto lib dependencies from being compiled

Prevented unused crypto lib dependencies from being compiled

Signed-off-by: Boris Krasnovskiy <borkra@gmail.com>
2 years agohostapd: prevent unused crypto lib dependencies from being compiled
Boris Krasnovskiy [Fri, 22 Jul 2022 15:06:10 +0000 (11:06 -0400)]
hostapd: prevent unused crypto lib dependencies from being compiled

Prevented unused crypto lib dependencies from being compiled

Signed-off-by: Boris Krasnovskiy <borkra@gmail.com>
2 years agowolfssl: fix math library build
John Audia [Thu, 21 Jul 2022 19:59:30 +0000 (15:59 -0400)]
wolfssl: fix math library build

Apply upstream patch[1] to fix breakage around math libraries.
This can likely be removed when 5.5.0-stable is tagged and released.

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

1. https://github.com/wolfSSL/wolfssl/pull/5390

Signed-off-by: John Audia <therealgraysky@proton.me>
2 years agolibcap: update to 2.65
Nick Hainke [Tue, 26 Jul 2022 14:18:51 +0000 (16:18 +0200)]
libcap: update to 2.65

Changes:
a47d86d Up the release version to 2.65
fc99e56 Include more signatures in pgp.keys.asc.
52288cc Close out this comment in the go/Makefile
eb0f1df Prevent 'capsh --user=xxx --' from generating a bash error.
9a95791 Improve documentation for cap_get_pid and cap_reset_ambient.
21d08b0 Fix syntax error in DEBUG protected setcap.c code.
9425048 More useful captree usage string and man page.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2 years agolibcap: update to 2.64
Nick Hainke [Tue, 26 Jul 2022 14:16:27 +0000 (16:16 +0200)]
libcap: update to 2.64

Changes:
38cfa2e Up the release version to 2.64
7617af6 Avoid a deadlock in forked psx thread exit.
fc029cb Include LIBCAP_{MAJOR,MINOR} #define's in sys/capability.h
ceaa591 Clarify how the cap_get_pid() argument is interpreted.
15cacf2 Fix prctl return code/errno handling in libcap.
aae9374 Be explicit about CGO_ENABLED=1 for compare-cap build.
66a8a14 psx: free allocated memory at exit.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2 years agomtools: update to 4.0.40
Nick Hainke [Tue, 26 Jul 2022 14:46:44 +0000 (16:46 +0200)]
mtools: update to 4.0.40

Changes:
- Remove libbsd dependency
- Better compatibility with legacy platforms such as AT&T UnixPC
- Upgraded to autoconf 2.71

Signed-off-by: Nick Hainke <vincent@systemli.org>
2 years agoodhcp6c: update to latest git HEAD
Dávid Benko [Fri, 29 Jul 2022 12:55:21 +0000 (14:55 +0200)]
odhcp6c: update to latest git HEAD

9212bfc odhcp6c: fix IA discard when T1 > 0 and T2 = 0

Signed-off-by: Dávid Benko <davidbenko@davidbenko.dev>
2 years agokernel: add kmod-nvme package
Daniel Golle [Tue, 26 Jul 2022 08:17:07 +0000 (10:17 +0200)]
kernel: add kmod-nvme package

Add driver for NVM Express block devices, ie. PCIe connected SSDs.

Targets which allow booting from NVMe (x86, maybe some mvebu boards come
to mind) should have it built-in, so rootfs can be mounted from there.
For targets without NVMe support in bootloader or BIOS/firmware it's
sufficient to provide the kernel module package.

On targets having the NVMe driver built-in the resulting kmod package
is an empty dummy. In any case, depending on or installing kmod-nvme
results in driver support being available (either because it was already
built-in or because the relevant kernel modules are added and loaded).

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2 years agoimage-commands: fix generating out-of-tree DTO
Daniel Golle [Thu, 14 Jul 2022 03:25:36 +0000 (04:25 +0100)]
image-commands: fix generating out-of-tree DTO

Hack path so DTO generation works also for out-of-tree device tree
sources which currently fail.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2 years agouboot-mediatek: reorder patches
Daniel Golle [Sun, 17 Jul 2022 20:41:31 +0000 (21:41 +0100)]
uboot-mediatek: reorder patches

Rename/reorder patches to avoid duplicate usage of 300-* prefix.
No functional changes.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2 years agowolfssl: make shared again
Jo-Philipp Wich [Sun, 24 Jul 2022 11:23:36 +0000 (13:23 +0200)]
wolfssl: make shared again

Disable the usage of target specific CPU crypto instructions by default
to allow the package being shared again. Since WolfSSL does not offer
a stable ABI or a long term support version suitable for OpenWrt release
timeframes, we're forced to frequently update it which is greatly
complicated by the package being nonshared.

People who want or need CPU crypto instruction support can enable it in
menuconfig while building custom images for the few platforms that support
them.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2 years agokernel: bump 5.10 to 5.10.134
John Audia [Fri, 29 Jul 2022 16:25:26 +0000 (12:25 -0400)]
kernel: bump 5.10 to 5.10.134

All patches automatically rebased.

Signed-off-by: John Audia <therealgraysky@proton.me>
2 years agox86: update defconfig for 5.10.133
John Audia [Mon, 25 Jul 2022 14:16:43 +0000 (10:16 -0400)]
x86: update defconfig for 5.10.133

Add some new/missing symbols relating to speculative execution mitigations[1].

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

Signed-off-by: John Audia <therealgraysky@proton.me>
2 years agokernel: bump 5.10 to 5.10.133
John Audia [Mon, 25 Jul 2022 13:21:12 +0000 (09:21 -0400)]
kernel: bump 5.10 to 5.10.133

All patches automatically rebased.

Build system: x86_64
Build-tested: ipq806x/R7800

Signed-off-by: John Audia <therealgraysky@proton.me>
2 years agokernel: bump 5.10 to 5.10.132
John Audia [Thu, 21 Jul 2022 20:19:32 +0000 (16:19 -0400)]
kernel: bump 5.10 to 5.10.132

All patches automatically rebased.

Signed-off-by: John Audia <therealgraysky@proton.me>
2 years agobcm4908: enable & setup packet steering
Rafał Miłecki [Thu, 28 Jul 2022 15:46:33 +0000 (17:46 +0200)]
bcm4908: enable & setup packet steering

Without packet steering NAT masquarade speed on BCM4908 /jumps/ between
two speeds:
1. 826 Mb/s (±3 Mb/s)
2. 909 Mb/s (±8 Mb/s)
and it never reaches ~940 Mb/s.

Proper packet steering can improve it. Below are testing results for
running iperf TCP traffic from LAN to WAN. They were used to pick up
golden values.

┌──────────┬──────────┬───────────┐
│   eth0   │  br-lan  │   speed   │
│ rps_cpus │ rps_cpus │   [Mbps]  │
├──────────┼──────────┼───────────┤
│        0 │        0 │ 743 / 804 │
│        0 │        1 │ 738 / 821 │
│        0 │        2 │     ✓ 940 │
│        0 │        4 │     ✓ 938 │
│        0 │        8 │     ✓ 941 │
├──────────┼──────────┼───────────┤
│        1 │        0 │       829 │
│        1 │        1 │       829 │
│        1 │        2 │     ✓ 942 │
│        1 │        4 │     ✓ 941 │
│        1 │        8 │     ✓ 941 │
├──────────┼──────────┼───────────┤
│        2 │        0 │     ✓ 942 │
│        2 │        1 │       926 │
│        2 │        2 │     ✓ 942 │
│        2 │        4 │     ✓ 942 │
│        2 │        8 │     ✓ 941 │
├──────────┼──────────┼───────────┤
│        4 │        0 │     ✓ 941 │
│        4 │        1 │       925 │
│        4 │        2 │     ✓ 941 │
│        4 │        4 │     ✓ 941 │
│        4 │        8 │     ✓ 941 │
├──────────┼──────────┼───────────┤
│        8 │        0 │     ✓ 942 │
│        8 │        1 │       925 │
│        8 │        2 │     ✓ 941 │
│        8 │        4 │     ✓ 942 │
│        8 │        8 │     ✓ 942 │
└──────────┴──────────┴───────────┘

Ref: fcbd39689ebfe ("bcm53xx: enable & setup packet steering")
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2 years agoRevert "realtek: remove support for HPE 1920 series"
Daniel Golle [Thu, 28 Jul 2022 14:45:03 +0000 (16:45 +0200)]
Revert "realtek: remove support for HPE 1920 series"

This reverts commit a63aeaecf1f3387df020854c9b22a365207399ce.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2 years agofirmware-utils: update to git HEAD
Daniel Golle [Thu, 28 Jul 2022 14:43:17 +0000 (16:43 +0200)]
firmware-utils: update to git HEAD

 4f8d03d mkh3cimg: add image tool for H3C devices
 2483fe7 mkh3cvfs: add filesystem tool for H3C devices

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2 years agorealtek: remove support for HPE 1920 series
Sander Vanheule [Thu, 28 Jul 2022 13:13:52 +0000 (15:13 +0200)]
realtek: remove support for HPE 1920 series

Support for HPE 1920 images depends on two non-existent tools (mkh3cimg
and mkh3cvfs) from the in the firmware-utils package. Revert commit
f2f09bc00280 ("realtek: add support for HPE 1920 series") until support
for these tools is merged and made available in OpenWrt.

Signed-off-by: Sander Vanheule <sander@svanheule.net>
2 years agorealtek: add support for HPE 1920 series
Jan Hoffmann [Sat, 23 Jul 2022 20:53:19 +0000 (22:53 +0200)]
realtek: add support for HPE 1920 series

Hardware information:
---------------------

- HPE 1920-8G:
  - RTL8380 SoC
  - 8 Gigabit RJ45 ports (built-in RTL8218B)
  - 2 SFP ports (built-in SerDes)

- HPE 1920-16G / HPE 1920-24G (same board):
  - RTL8382 SoC
  - 16/24 Gigabit RJ45 ports (built-in RTL8218B, 1/2 external RTL8218D)
  - 4 SFP ports (external RTL8214FC)

- Common:
  - RJ45 RS232 port on front panel
  - 32 MiB NOR Flash
  - 128 MiB DDR3 DRAM
  - PT7A7514 watchdog

Booting initramfs image:
------------------------

- Prepare a FTP or TFTP server serving the OpenWrt initramfs image and
  connect the server to a switch port.

- Connect to the console port of the device and enter the extended
  boot menu by typing Ctrl+B when prompted.

- Choose the menu option "<3> Enter Ethernet SubMenu".

- Set network parameters via the option "<5> Modify Ethernet Parameter".
  Enter the FTP/TFTP filename as "Load File Name" ("Target File Name"
  can be left blank, it is not required for booting from RAM). Note that
  the configuration is saved on flash, so it only needs to be done once.

- Select "<1> Download Application Program To SDRAM And Run".

Initial installation:
---------------------

- Boot an initramfs image as described above, then use sysupgrade to
  install OpenWrt permanently. After initial installation, the
  bootloader needs to be configured to load the correct image file

- Enter the extended boot menu again and choose "<4> File Control",
  then select "<2> Set Application File type".

- Enter the number of the file "openwrt-kernel.bin" (should be 1), and
  use the option "<1> +Main" to select it as boot image.

- Choose "<0> Exit To Main Menu" and then "<1> Boot System".

NOTE: The bootloader on these devices can only boot from the VFS
filesystem which normally spans most of the flash. With OpenWrt, only
the first part of the firmware partition contains a valid filesystem,
the rest is used for rootfs. As the bootloader does not know about this,
you must not do any file operations in the bootloader, as this may
corrupt the OpenWrt installation (selecting the boot image is an
exception, as it only stores a flag in the bootloader data, but doesn't
write to the filesystem).

Signed-off-by: Jan Hoffmann <jan@3e8.eu>
2 years agotools: add 7z host package
Jan Hoffmann [Sat, 23 Jul 2022 20:53:18 +0000 (22:53 +0200)]
tools: add 7z host package

Add the 7zr command line tool, which is a version of the 7z application
that only supports 7z archives.

7z is one of the two compression formats supported in H3C firmware
images (the alternative would be ARJ).

(Alternatively, the 7zr command line tool could also be built from a
current version of the public-domain LZMA SDK. That would require
repackaging the source package, as it is only provided in 7z format.)

Signed-off-by: Jan Hoffmann <jan@3e8.eu>
2 years agokernel: mtdsplit: add support for H3C VFS filesystem
Jan Hoffmann [Sat, 23 Jul 2022 20:53:17 +0000 (22:53 +0200)]
kernel: mtdsplit: add support for H3C VFS filesystem

The bootloader on some H3C devices (for example HPE 1920 switches) only
supports booting from flash by reading an image from an "VFS" filesystem
which spans most of the available flash. The filesystem size is hard-
coded in the bootloader. However, as long as no write operations are
performed in the bootloader menu, it is sufficient if the start of the
partition contains a valid filesystem with the kernel image.

This mtdsplit parser reads the size and location of the kernel image and
finds the location of the rootfs stored after it. It assumes that the
filesystem image matches the layout of one generated by mkh3cvfs, with
a filename of "openwrt-kernel.bin" for the kernel image.

Signed-off-by: Jan Hoffmann <jan@3e8.eu>
2 years agorealtek: clean up rtl838x MDIO busy wait loop
Jan Hoffmann [Sat, 23 Jul 2022 20:53:16 +0000 (22:53 +0200)]
realtek: clean up rtl838x MDIO busy wait loop

Don't use udelay to allow other kernel tasks to execute if the kernel
has been built without preemption. Also determine the timeout based on
jiffies instead of loop iterations.

This is especially important on devices containing a watchdog with a
short timeout. Without this change, the watchdog is not serviced during
PHY patching which can take multiple seconds.

Tested-by: Birger Koblitz <mail@birger-koblitz.de>
Signed-off-by: Jan Hoffmann <jan@3e8.eu>
2 years agorealtek: add SFP support for RTL8214FC PHY
Jan Hoffmann [Sat, 23 Jul 2022 20:53:15 +0000 (22:53 +0200)]
realtek: add SFP support for RTL8214FC PHY

Probe the SFP module during PHY initialization and implement
insertion/removal handlers to automatically configure the media type
of the respective port.

Suggested-by: Birger Koblitz <git@birger-koblitz.de>
Tested-by: Birger Koblitz <mail@birger-koblitz.de>
Signed-off-by: Jan Hoffmann <jan@3e8.eu>
2 years agorealtek: rtl83xx-phy: decouple RTL8214FC media change and power config
Jan Hoffmann [Sat, 23 Jul 2022 20:53:14 +0000 (22:53 +0200)]
realtek: rtl83xx-phy: decouple RTL8214FC media change and power config

Move RTL8214FC power configuration to newly created suspend and resume
methods. A media change now only results in power configuration if the
PHY is not suspended, to avoid powering up a port when the interface is
currently not up.

While at it, remove the rtl8380 prefix from function names, as this is
actually not SoC-specific.

Tested-by: Birger Koblitz <mail@birger-koblitz.de>
Signed-off-by: Jan Hoffmann <jan@3e8.eu>
2 years agorealtek: rtl83xx-phy: fix RTL8214FC media change
Jan Hoffmann [Sat, 23 Jul 2022 20:53:13 +0000 (22:53 +0200)]
realtek: rtl83xx-phy: fix RTL8214FC media change

Toggle power on the individual PHY instead of the package. Otherwise
a media change always toggles power on the first port, and not the one
that is being configured.

Signed-off-by: Jan Hoffmann <jan@3e8.eu>
2 years agorealtek: make DGS-1210 u-boot-env partition writeable
Markus Stockhausen [Fri, 8 Jul 2022 15:27:22 +0000 (17:27 +0200)]
realtek: make DGS-1210 u-boot-env partition writeable

We are close to provide enduser friendly OpenWrt images for DGS-1210
switches that do not need serial console. Nevertheless a small bit is
missing. We cannot switch back to the vendor partition or initiate a
download of a vendor firmware image. To issue this from inside OpenWrt
we need write access to U-Boot environment.

Case 1: Switch back to secondary (vendor) image
> fw_setenv bootcmd run addargs\; bootm 0xb4e80000
> fw_setenv image /dev/mtdblock7
> reboot

Case 2: Issue D-Link Network Assistant based download on next reboot.
This is a combination of some vendor specific protocol (DDP) and a
TFTP download afterwards.
> fw_setenv bootstop on
> reboot

Allow these commands by opening up u-boot-env for write access.
Tested on DGS-1210-20.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
2 years agouboot-bcm4908: include SoC in output files
Rafał Miłecki [Wed, 20 Jul 2022 11:47:06 +0000 (13:47 +0200)]
uboot-bcm4908: include SoC in output files

This fixes problem of overwriting BCM4908 U-Boot and DTB files by
BCM4912 ones. That bug didn't allow booting BCM4908 devices.

Fixes: f4c2dab544ec2 ("uboot-bcm4908: add BCM4912 build")
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2 years agobcm4908: build bootfs image per-SoC
Rafał Miłecki [Wed, 20 Jul 2022 11:47:05 +0000 (13:47 +0200)]
bcm4908: build bootfs image per-SoC

In theory we could have just 1 bootfs image for all devices as each
device has its own entry in the "configurations" node. It doesn't work
well with default configuration though.

If something goes wrong U-Boot SPL can be interrupted (by pressing A) to
enter its minimalistic menu. It allows ignoring boardid. In such case
bootfs default configuration is used.

For above reason each SoC family (BCM4908, BCM4912) should have its own
bootfs built. It allows each of them to have working default
configuration.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2 years agoCI: run inside the buildbot docker container
Paul Spooren [Sun, 20 Mar 2022 15:31:24 +0000 (15:31 +0000)]
CI: run inside the buildbot docker container

Run github actions insider buildbot docker container.

Signed-off-by: Paul Spooren <mail@aparcar.org>
[ run container under buildbot user ]
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2 years agoCI: add Kernel compile tests
Paul Spooren [Wed, 9 Mar 2022 17:22:22 +0000 (18:22 +0100)]
CI: add Kernel compile tests

Add Github Actions yaml script to build test kernel PR changes for
each target.

Signed-off-by: Paul Spooren <mail@aparcar.org>
[ add commit description ]
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2 years agoscripts: ext-toolchain: add support for musl
Christian Marangi [Sun, 17 Jul 2022 15:56:59 +0000 (17:56 +0200)]
scripts: ext-toolchain: add support for musl

Openwrt now supports only glibc and musl. Add support for musl and
rework the libc check to handle the new config flags and correctly
compile package basend on that.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2 years agoscripts: ext-toolchain: add support for info.mk in probe_cc
Christian Marangi [Sun, 17 Jul 2022 15:56:36 +0000 (17:56 +0200)]
scripts: ext-toolchain: add support for info.mk in probe_cc

Openwrt generate info.mk that contains the libc type. For probe_cc check
if the file exist and parse directly it for LIBC type.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2 years agoscripts: ext-toolchain: actually probe libc type on config generation
Christian Marangi [Sun, 17 Jul 2022 15:53:58 +0000 (17:53 +0200)]
scripts: ext-toolchain: actually probe libc type on config generation

Currently we never call probe_cc before config generation, this cause
the script to never actually detect the correct libc type.
Call probe_cc before config generation to correctl set the .config file.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2 years agoscripts: ext-toolchain: add option to overwrite config
Christian Marangi [Mon, 4 Jul 2022 16:22:18 +0000 (18:22 +0200)]
scripts: ext-toolchain: add option to overwrite config

It can be useful to overwrite an already generated config.
Option are simply added at the end of the config and make defconfig
will overwrite the relevant option with the new one.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2 years agoscripts: ext-toolchain: fix wrong prefix in print_config generation
Christian Marangi [Sun, 3 Jul 2022 00:20:11 +0000 (02:20 +0200)]
scripts: ext-toolchain: fix wrong prefix in print_config generation

The parsed prefix in print_config is wrong and this produce broken
generated .config that won't work with any external toolchain.

Currently the prefix from a CC of

'arm-openwrt-linux-muslgnueabi-gcc-12.1.0'

produce a prefix

'arm-openwrt-linux-muslgnueabi-gcc-'

This is wrong as the real prefix should be

'arm-openwrt-linux-muslgnueabi-'

This is probably caused by a change in how the toolchain is now handled
that now append also the gcc version. Probably in ancient days the
version wasn't part of the name and the prefix generation stripped the
'-gcc' instead of the gcc version.

Fix this and correctly strip the gcc version and the gcc suffix to
correctly call toolchain bins.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2 years agorules_mk: don't include wrapped bin with external toolchains
Christian Marangi [Sun, 3 Jul 2022 00:06:21 +0000 (02:06 +0200)]
rules_mk: don't include wrapped bin with external toolchains

Don't add wrapped bin to the TARGET_PATH as it does cause compilation
error.

cmake.mk will use the "command -v" and will use the wrapped bin instead
of the external toolchain bin as they have the same name and command
will select the first result.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2 years agorules_mk: use gcc versions for external toolchain
Vincent Wiemann [Mon, 28 Dec 2020 15:00:13 +0000 (16:00 +0100)]
rules_mk: use gcc versions for external toolchain

When using the OpenWrt toolchain as an external toolchain the build
failed due to missing LTO support. By choosing the GCC wrappers of
the tools this commit makes sure that the LTO-enabled executables
are being used.

Signed-off-by: Vincent Wiemann <vincent.wiemann@ironai.com>
[ wrap the commit description to 72 char ]
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2 years agolantiq: fix network port GPIO settings for Fritzbox 3390
Daniel Kestrel [Fri, 22 Jul 2022 19:01:49 +0000 (21:01 +0200)]
lantiq: fix network port GPIO settings for Fritzbox 3390

There are forum reports that 2 LAN ports are not working, the
GPIO settings are adjusted to fix the problem.

Signed-off-by: Daniel Kestrel <kestrel1974@t-online.de>
2 years agoipq806x: Archer VR2600: fix switch ports numbering
Christian Lamparter [Tue, 19 Jul 2022 17:46:38 +0000 (19:46 +0200)]
ipq806x: Archer VR2600: fix switch ports numbering

The order of LAN ports shown in Luci is reversed compared to what is
written on the case of the device.  Fix the order so that they match.

Fixes: #10275
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 years agolayerscape: update remaining PKG_HASH / PKG_MIRROR_HASH
Christian Lamparter [Tue, 19 Jul 2022 18:11:02 +0000 (20:11 +0200)]
layerscape: update remaining PKG_HASH / PKG_MIRROR_HASH

The change of the PKG_VERSION caused the hash of the package to
change. This is because the PKG_VERSION is present in the
internal directory structure of the archive.

Fixes: e879cccaa215 ("uboot-layerscape: update PKG_HASH")
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 years agogeneric: 5.15: Disable more config symbols
Martin Blumenstingl [Mon, 21 Mar 2022 17:50:11 +0000 (18:50 +0100)]
generic: 5.15: Disable more config symbols

These came up while trying to build the lantiq target with Linux 5.15.

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
2 years agorealtek: clear spurious GPIO interrupts
Sander Vanheule [Thu, 21 Jul 2022 20:43:39 +0000 (22:43 +0200)]
realtek: clear spurious GPIO interrupts

The interrupt controller in the internal GPIO peripheral will sometimes
generate spurious interrupts. If these are not properly acknowledged, the
system will be held busy until reboot. These spurious interrupts are identified
by the fact that there is no system IRQ number associated, since the interrupt
line was never allocated. Although most prevalent on RTL839x, RTL838x SoCs have
also displayed this behaviour.

Reported-by: Luiz Angelo Daros de Luca <luizluca@gmail.com> # DGS-1210-52
Reported-by: Birger Koblitz <mail@birger-koblitz.de> # Netgear GS724TP v2
Reported-by: Jan Hoffmann <jan@3e8.eu> # HPE 1920-16G
Signed-off-by: Sander Vanheule <sander@svanheule.net>
2 years agoramips: add support for ZyXEL NWA50AX / NWA55AXE
David Bauer [Fri, 27 May 2022 15:48:06 +0000 (17:48 +0200)]
ramips: add support for ZyXEL NWA50AX / NWA55AXE

Hardware
--------
CPU:    Mediatek MT7621
RAM:    256M DDR3
FLASH:  128M NAND
ETH:    1x Gigabit Ethernet
WiFi:   Mediatek MT7915 (2.4/5GHz 802.11ax 2x2 DBDC)
BTN:    1x Reset (NWA50AX only)
LED:    1x Multi-Color (NWA50AX only)

UART Console
------------
NWA50AX:
Available below the rubber cover next to the ethernet port.
NWA55AXE:
Available on the board when disassembling the device.

Settings: 115200 8N1

Layout:

<12V> <LAN> GND-RX-TX-VCC

Logic-Level is 3V3. Don't connect VCC to your UART adapter!

Installation Web-UI
-------------------
Upload the Factory image using the devices Web-Interface.

As the device uses a dual-image partition layout, OpenWrt can only
installed on Slot A. This requires the current active image prior
flashing the device to be on Slot B.

If the currently installed image is started from Slot A, the device will
flash OpenWrt to Slot B. OpenWrt will panic upon first boot in this case
and the device will return to the ZyXEL firmware upon next boot.

If this happens, first install a ZyXEL firmware upgrade of any version
and install OpenWrt after that.

Installation TFTP
-----------------
This installation routine is especially useful in case
 * unknown device password (NWA55AXE lacks reset button)
 * bricked device

Attach to the UART console header of the device. Interrupt the boot
procedure by pressing Enter.

The bootloader has a reduced command-set available from CLI, but more
commands can be executed by abusing the atns command.

Boot a OpenWrt initramfs image available on a TFTP server at
192.168.1.66. Rename the image to owrt.bin

 $ atnf owrt.bin
 $ atna 192.168.1.88
 $ atns "192.168.1.66; tftpboot; bootm"

Upon booting, set the booted image to the correct slot:

 $ zyxel-bootconfig /dev/mtd10 get-status
 $ zyxel-bootconfig /dev/mtd10 set-image-status 0 valid
 $ zyxel-bootconfig /dev/mtd10 set-active-image 0

Copy the OpenWrt ramboot-factory image to the device using scp.
Write the factory image to NAND and reboot the device.

 $ mtd write ramboot-factory.bin firmware
 $ reboot

Signed-off-by: David Bauer <mail@david-bauer.net>
2 years agobcm4908: prepare for Asus GT-AX6000 support
Rafał Miłecki [Wed, 20 Jul 2022 18:03:56 +0000 (20:03 +0200)]
bcm4908: prepare for Asus GT-AX6000 support

It isn't tested & Linux DT will surely need more work.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2 years agobcm4908: backport bcmbca DT patches queued for 5.20
Rafał Miłecki [Wed, 20 Jul 2022 16:12:31 +0000 (18:12 +0200)]
bcm4908: backport bcmbca DT patches queued for 5.20

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2 years agowolfssl: Do not activate HW acceleration on armvirt by default
Hauke Mehrtens [Mon, 18 Jul 2022 21:06:00 +0000 (23:06 +0200)]
wolfssl: Do not activate HW acceleration on armvirt by default

The armvirt target is also used to run OpenWrt in lxc on other targets
like a Raspberry Pi. If we set WOLFSSL_HAS_CPU_CRYPTO by default the
wolfssl binray is only working when the CPU supports the hardware crypto
extension.

Some targets like the Raspberry Pi do not support the ARM CPU crypto
extension, compile wolfssl without it by default. It is still possible
to activate it in custom builds.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2 years agotools/libressl: bump to v3.5.3
Andre Heider [Tue, 19 Jul 2022 11:31:31 +0000 (13:31 +0200)]
tools/libressl: bump to v3.5.3

This includes API additions required for u-boot v2022.07 and Python 3.10.

https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-3.5.0-relnotes.txt
https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-3.5.1-relnotes.txt
https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-3.5.2-relnotes.txt
https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-3.5.3-relnotes.txt

Signed-off-by: Andre Heider <a.heider@gmail.com>