Skip to content
Snippets Groups Projects
  1. Mar 17, 2022
  2. Mar 16, 2022
    • Jan Hoffmann's avatar
      lantiq: fritz7362sl: add partition subnode for SPI flash · a6222738
      Jan Hoffmann authored
      
      Without a partition subnode ofpart_core still parses direct subnodes as
      partitions, but it ignores nodes with a compatible property. Due to
      this, the switch to nvmem-cells made the urlader partition inaccessible.
      As a result, the wireless network was broken, as the calibration data
      is read from that partition by a script.
      
      Fixes: #8983
      Signed-off-by: default avatarJan Hoffmann <jan@3e8.eu>
      a6222738
    • Martin Blumenstingl's avatar
      lantiq: fritz7362sl: fix SPI flash node reg property · dadedd55
      Martin Blumenstingl authored
      
      The &spi node has #address-cells = <1> and #size-cells = <0>. Drop the
      extra 0 in the reg property from the SPI flash node to ensure it's
      number of cells matches the definition in the parent node. This also
      makes the reg property for the SPI flash node consistent with all other
      VR9 boards.
      
      Fixes: eae6cac6 ("lantiq: add support for AVM FRITZ!Box 7362 SL")
      Signed-off-by: default avatarMartin Blumenstingl <martin.blumenstingl@googlemail.com>
      dadedd55
    • Christian Lamparter's avatar
      ipq806x: fix TP-Link Archer VR2600v bootlooping · 621b0589
      Christian Lamparter authored
      
      Timo Schroeder reported:
      "The TP-Link Archer VR2600v is stuck in a boot loop on written
      snapshot image. It's able to boot using the snapshot uimage
      though, but there ath10k firmware can't be found.
      21.02.2 release version doesn't have either problem."
      
      The VR2600v has a 512 byte header at the beginning of the
      firmware that needs to be accounted for.
      
      Fixes: f6a01d7f ("ipq806x: convert TP-Link Archer VR2600v to denx,uimage")
      Reported-by: default avatarTimo Schroeder <der.timosch@gmail.com>
      References: <https://github.com/openwrt/openwrt/issues/9467
      
      >
      Signed-off-by: default avatarChristian Lamparter <chunkeey@gmail.com>
      621b0589
    • Martin Kennedy's avatar
      mpc85xx: add support for Extreme Networks WS-AP3825i · 7e614820
      Martin Kennedy authored
      Hardware:
      
      - SoC:     Freescale P1020
        - CPU:     2x e500v2 @ 800MHz
      - Flash:   64MiB NOR (1x Intel JS28F512)
      - Memory:  256MiB (2x ProMOS DDR3 V73CAG01168RBJ-I9H 1Gb)
      - WiFi1:   2.4+5GHz abgn 3x3 (Atheros AR9590)
      - Wifi2:   5GHz an+ac 3x3 (Qualcomm Atheros QCA9890)
      - ETH:     2x PoE Gigabit Ethernet (2x Atheros AR8035)
      - Power:   12V (center-positive barrel) or 48V PoE (active or passive)
      - Serial:  Cisco-compatible RJ45 next to 12V power socket (115200 baud)
      - LED Driver: TI LV164A
        - LEDs: (not functioning)
          - 2x Power (Green + Orange)
          - 4x ETH (ETH1 + ETH2) x (Green + Orange)
          - 2x WiFi (WiFi2 + WiFi1)
      
      Installation:
      
      1. Grab the OpenWrt initramfs <openwrt-initramfs-bin>, e.g.
         openwrt-mpc85xx-p1020-extreme-networks_ws-ap3825i-initramfs-kernel.bin.
         Place it in the root directory of a DHCP+TFTP server, e.g. OpenWrt
         `dnsmasq` with configuration `dhcp.server.enable_tftp='1'`.
      
      2. Connect to the serial port and boot the AP with options
         e.g. 115200,N,8. Stop autoboot in U-Boot by pressing Enter after
         'Scanning JFFS2 FS:' begins, then waiting for the prompt to be
         interrupted. Credentials are identical to the one in the APs
         interface. By default it is admin / new2day: if these do not work,
         follow the OEM's reset procedure using the reset button.
      
      3. Set the bootcmd so the AP can boot OpenWrt by executing:
      
      ```uboot
      setenv boot_openwrt "cp.b 0xEC000000 0x2000000 0x2000000; interrupts off; bootm start 0x2000000; bootm loados; fdt resize; fdt boardsetup; fdt chosen; bootm prep; bootm go;"
      setenv bootcmd "run boot_openwrt"
      saveenv
      ```
      
         If you plan on going back to the vendor firmware - the bootcmd for it
         is stored in the boot_flash variable.
      
      4. Load the initramfs image to RAM and boot by executing
      
      ```uboot
      setenv ipaddr <ipv4 client address>;
      setenv serverip <tftp server address>;
      tftpboot 0x2000000 <openwrt-initramfs-bin>;
      interrupts off;
      bootm start 0x2000000;
      bootm loados;
      fdt resize;
      fdt boardsetup;
      fdt chosen;
      bootm prep;
      bootm go;
      ```
      
      5. Make a backup of the "firmware" partition if you ever wish to go back
         to the vendor firmware.
      
      6. Upload the OpenWrt sysupgrade image via SCP to the devices /tmp
         folder.
      
      7. Flash OpenWrt using sysupgrade.
      
      ```ash
      sysupgrade /tmp/<openwrt-sysupgrade-bin>
      ```
      
      Notes:
      
      - We must step through the `bootm` process manually to avoid fdt
        relocation. To explain: the stock U-boot (and stock Linux) are configured
        with a very large CONFIG_SYS_BOOTMAPSZ (and the device's stock Linux
        kernel is configured to be able to handle it). The U-boot version
        predates the check for the `fdt_high` variable, meaning that upon fdt
        relocation, the fdt can (and will) be moved to a very high address; the
        default appears to be 0x9ffa000. This address is so high that when the
        Linux kernel starts reading the fdt at the beginning of the boot process,
        it encounters a memory access exception and panics[5]. While it is
        possible to reduce the highest address the fdt will be relocated to by
        setting `bootm_size`, this also has the side effect of limiting the
        amount of RAM the kernel can use[3].
      
      - Because it is not relocated, the flattened device tree needs to be
        padded in the build process to guarantee that `fdt resize` has
        enough space.
      
      - The primary ethernet MAC address is stored (and set) in U-boot; they are
        shimmed into the device tree by 'fdt boardsetup' through the
        'local-mac-address' property of the respective ethernet node, so OpenWrt
        does not need to set this at runtime. Note that U-boot indexes the
        ethernet nodes by alias, which is why the device tree explicitly aliases
        ethernet1 to enet2.
      
      - LEDs do not function under OpenWrt. Each of 8 LEDs is connected to an
        output of a TI LV164A shift register, which is wired to GPIO lines and
        operates through bit-banged SPI. Unfortunately, I am unable to get the
        spi-gpio driver to recognize the `led_spi` device tree node at all, as
        confirmed by patching in printk messages demonstrating
        spi-gpio.c::spi_gpio_probe never runs. It is possible to manually
        articulate the shift register by exporting the GPIO lines and stepping
        their values through the sysfs.
      
      - Though they do not function under OpenWrt, I have left the pinout details
        of the LEDs and shift register in the device tree to represent real
        hardware.
      
      - An archive of the u-boot and Linux source for the AP3825i (which is one
        device of a range of devices code-named 'CHANTRY') be found here[1].
      
      - The device has an identical case to both the Enterasys WS-AP3725i and
        Adtran BSAP-2030[2] (and potentially other Adtran BSAPs). Given that
        there is no FCC ID for the board itself (only its WLAN modules), it's
        likely these are generic boards, and even that the WS-AP3725i is
        identical, with only a change in WLAN card. I have ordered one to confirm
        this.
      
      - For additional information: the process of porting the board is
        documented in an OpenWrt forum thread[4].
      
      [1]: magnet:?xt=urn:btih:f5306a5dfd06d42319e4554565429f84dde96bbc
      [2]: https://forum.openwrt.org/t/support-for-adtran-bluesocket-bsap-2030/48538
      [3]: https://forum.openwrt.org/t/adding-openwrt-support-for-ws-ap3825i/101168/29
      [4]: https://forum.openwrt.org/t/adding-openwrt-support-for-ws-ap3825i/101168
      [5]: https://forum.openwrt.org/t/adding-openwrt-support-for-ws-ap3825i/101168/26
      
      
      
      Tested-by: default avatarMartin Kennedy <hurricos@gmail.com>
      Signed-off-by: default avatarMartin Kennedy <hurricos@gmail.com>
      7e614820
    • Rodolphe de Saint Léger's avatar
      ramips: add support for Netgear WN3100RPv2 · 46c5de53
      Rodolphe de Saint Léger authored
      This patch adds support for the Netgear WN3100RPv2
      http://www.netgear.com/support/product/wn3100rpv2.aspx
      
      Specifications:
      - SoC: MediaTek MT7620A (580MHz, ramips)
      - RAM: 32MB DDR
      - Storage: 8MB NOR SPI flash
      - Wireless: builtin MT7620A, 2x2:2 with u.FL connectors
      - Ethernet: 1x100M
      - Stock firmware based on OpenWRT Kamikaze
      
      Like the EX2700, the bootloader expects a secondary image signature,
      see https://forum.openwrt.org/viewtopic.php?pid=312577#p312577
      
      
      
      This device seems to be same hardware as a WN3000RPv3
      
      Flash instructions:
      - Use the Netgear WebUI to upgrade to OpenWRT using the factory image
        (see note below),
      - Use the sysupgrade image for upgrading versions from OpenWRT,
      - TFTP recovery procedure can be used to flash the factory image
        (preferred method).
      
      Note:
      - The WebUI may not reboot automatically, wait at least 5 minutes before
        powercycling the device
      
      Flashing using TFTP:
      - Set you IP address to 192.168.1.10/24 (no gateway)
      - Connect your machine to the Ethernet port
      - Power off the device and wait for 10 seconds,
      - Hold the reset button and power on the device (do not release reset),
      - Hold the reset button until the green light is flashing (Approx. 15s)
      - launch tftp, set mode to binary and connect to 192.168.1.1
      - put the factory firmware image
      - All leds will switch off (like a power off), this is normal
      - Wait for the device to reboot in the new OpenWRT image (max 5 mins)
      - The first boot will take longer than usual.
      - After boot, the Device IP on the ethernet port is 192.168.1.1
      
      Signed-off-by: default avatarRodolphe de Saint Léger <rdesaintleger@gmail.com>
      [drop unneeded includes in dts, wrap commit message]
      Signed-off-by: default avatarSungbo Eo <mans0n@gorani.run>
      46c5de53
    • Sungbo Eo's avatar
      Revert "ramips: add support for Netgear WN3000RPv3" · fe34001e
      Sungbo Eo authored
      
      This reverts commit 7bc20cb6.
      
      It adds support for Netgear WN3100RPv2, but the commit title is wrong.
      It will be re-added with the correct title.
      
      Signed-off-by: default avatarSungbo Eo <mans0n@gorani.run>
      fe34001e
    • Rodolphe de Saint Léger's avatar
      ramips: add support for Netgear WN3000RPv3 · 7bc20cb6
      Rodolphe de Saint Léger authored
      This patch adds support for the Netgear WN3100RPv2
      http://www.netgear.com/support/product/wn3100rpv2.aspx
      
      Specifications:
      - SoC: MediaTek MT7620A (580MHz, ramips)
      - RAM: 32MB DDR
      - Storage: 8MB NOR SPI flash
      - Wireless: builtin MT7620A, 2x2:2 with u.FL connectors
      - Ethernet: 1x100M
      - Stock firmware based on OpenWRT Kamikaze
      
      Like the EX2700, the bootloader expects a secondary image signature,
      see https://forum.openwrt.org/viewtopic.php?pid=312577#p312577
      
      
      
      This device seems to be same hardware as a WN3000RPv3
      
      Flash instructions:
      - Use the Netgear WebUI to upgrade to OpenWRT using the factory image
        (see note below),
      - Use the sysupgrade image for upgrading versions from OpenWRT,
      - TFTP recovery procedure can be used to flash the factory image
        (preferred method).
      
      Note:
      - The WebUI may not reboot automatically, wait at least 5 minutes before
        powercycling the device
      
      Flashing using TFTP:
      - Set you IP address to 192.168.1.10/24 (no gateway)
      - Connect your machine to the Ethernet port
      - Power off the device and wait for 10 seconds,
      - Hold the reset button and power on the device (do not release reset),
      - Hold the reset button until the green light is flashing (Approx. 15s)
      - launch tftp, set mode to binary and connect to 192.168.1.1
      - put the factory firmware image
      - All leds will switch off (like a power off), this is normal
      - Wait for the device to reboot in the new OpenWRT image (max 5 mins)
      - The first boot will take longer than usual.
      - After boot, the Device IP on the ethernet port is 192.168.1.1
      
      Signed-off-by: default avatarRodolphe de Saint Léger <rdesaintleger@gmail.com>
      [drop unneeded includes in dts, wrap commit message]
      Signed-off-by: default avatarSungbo Eo <mans0n@gorani.run>
      7bc20cb6
    • Pawel Dembicki's avatar
      ramips: mt7620: Add support for D-Link DWR-961 A1 · be89c9ee
      Pawel Dembicki authored
      
      The DWR-961 A1 Wireless Router is based on the MT7620A SoC.
      It's a merge of two Amit boards: DWR-960 with ethernet part
      of Lava LR-25G001.
      
      ROMID it's taken from Telenor branded version and it works with tested
      device. Images from D-Link site for this router are from DWR-953 and it
      have ROMID DLK6E2424001. I don't know if it's mistake on web-site
      or if it's will require different image.
      
      Specification:
      
      - MediaTek MT7620A (580 Mhz)
      - 128 MB of RAM
      - 16 MB of FLASH
      - 1x 802.11bgn radio
      - 1x 802.11ac radio (MT7612 mpcie card)
      - 5x 10/100/1000 Mbps Ethernet: 4xLAN and 1xWAN (QCA8337)
      - 2x internal, non-detachable antennas (Wifi 2.4G)
      - 3x external, detachable antennas (2x LTE, 1x Wifi 5G)
      - 1x LTE modem cat 6
      - UART (J5) header on PCB (57600 8n1)
      - 13x LED, 2x button
      - JBOOT bootloader
      
      Installation:
      Apply factory image via http web-gui or JBOOT recovery page
      
      How to revert to OEM firmware:
      - push the reset button and turn on the power. Wait until LED start
        blinking (~10sec.)
      - upload original factory image via JBOOT http (IP: 192.168.123.254)
      
      Signed-off-by: default avatarPawel Dembicki <paweldembicki@gmail.com>
      be89c9ee
  3. Mar 15, 2022
  4. Mar 13, 2022
    • Michael Pratt's avatar
      ath79: add support for Araknis AN-700-AP-I-AC · 41be1a2d
      Michael Pratt authored
      
      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: default avatarMichael Pratt <mcpratt@pm.me>
      41be1a2d
    • Michael Pratt's avatar
      ath79: add support for Araknis AN-500-AP-I-AC · 56716b57
      Michael Pratt authored
      
      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: default avatarMichael Pratt <mcpratt@pm.me>
      56716b57
    • Michael Pratt's avatar
      ath79: add support for Araknis AN-300-AP-I-N · 561f46bd
      Michael Pratt authored
      
      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: default avatarMichael Pratt <mcpratt@pm.me>
      561f46bd
    • Michael Pratt's avatar
      ath79: improve factory.bin for some Senao devices · 07723492
      Michael Pratt authored
      
      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: default avatarMichael Pratt <mcpratt@pm.me>
      07723492
    • INAGAKI Hiroshi's avatar
      realtek: add support for Panasonic Switch-M8eG PN28080K · e83ab243
      INAGAKI Hiroshi authored
      
      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: default avatarINAGAKI Hiroshi <musashino.open@gmail.com>
      Reviewed-by: default avatarSander Vanheule <sander@svanheule.net>
      e83ab243
    • INAGAKI Hiroshi's avatar
      realtek: enable pca953x driver for rtl838x subtarget · da1347d6
      INAGAKI Hiroshi authored
      
      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: default avatarINAGAKI Hiroshi <musashino.open@gmail.com>
      Acked-by: default avatarSander Vanheule <sander@svanheule.net>
      da1347d6
    • Martin Kennedy's avatar
      realtek: add ZyXEL GS1900-24 v1 support · d1a86907
      Martin Kennedy authored
      
      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: default avatarMartin Kennedy <hurricos@gmail.com>
      d1a86907
    • John Audia's avatar
      kernel: bump 5.10 to 5.10.104 · 3f5b2d25
      John Audia authored
      
      All patches automatically rebased.
      
      Build system: x86_64
      Build-tested: bcm2711/RPi4B, mt7622/RT3200
      Run-tested: bcm2711/RPi4B, mt7622/RT3200
      
      Signed-off-by: default avatarJohn Audia <graysky@archlinux.us>
      3f5b2d25
    • Joe Mullally's avatar
      ramips: Apply pinctrl DTS changes to TL-WPA8631P · 8d255512
      Joe Mullally authored
      
      Applies changes from 7774b860 to new device committed later. Fix some
      whitespace in the DTS. Use standard model name format in DTS.
      
      Fixes: 6c743c30 ("ramips: Add support for TP-Link TL-WPA8631P v3")
      Signed-off-by: default avatarJoe Mullally <jwmullally@gmail.com>
      Reported-by: default avatarArınç ÜNAL <arinc.unal@arinc9.com>
      8d255512
    • Sven Schwermer's avatar
      ath79: Add LED labels for Airtight C-75 · 591a2b95
      Sven Schwermer authored
      
      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 4eefdc7a.
      
      Signed-off-by: default avatarSven Schwermer <sven@svenschwermer.de>
      591a2b95
    • Chukun Pan's avatar
      ramips: update WLAN MAC address of JCG Y2 · 7fa227ea
      Chukun Pan authored
      
      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: default avatarChukun Pan <amadeus@jmu.edu.cn>
      7fa227ea
    • Chukun Pan's avatar
      ramips: update WLAN MAC address of Phicomm K2P · 285e636b
      Chukun Pan authored
      
      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: default avatarChukun Pan <amadeus@jmu.edu.cn>
      285e636b
    • Dawsen Gao's avatar
      ramips: Add support for Dual-Q H721 · b3da44b6
      Dawsen Gao authored
      
      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: default avatarDawsen Gao <dawsen_gao@163.com>
      [change author name (used SoB one), add ethernet pinctrl,
       apply sorting to device recipe]
      Signed-off-by: default avatarSungbo Eo <mans0n@gorani.run>
      b3da44b6
  5. Mar 11, 2022
  6. Mar 10, 2022
  7. Mar 09, 2022
    • Dmitry Chigiryov's avatar
      ramips: allow USB power control on TP-Link MR3020v3 · 9d06f1a6
      Dmitry Chigiryov authored
      
      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: default avatarDmitry Chigiryov <dmitry.chigiryov@ya.ru>
      [changed author address (used SoB one)]
      Signed-off-by: default avatarSungbo Eo <mans0n@gorani.run>
      9d06f1a6
    • Sungbo Eo's avatar
      ramips: fix DEVICE_VENDOR for unbranded devices · 94d4269e
      Sungbo Eo authored
      
      In commit ee66fe4e ("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: d0bf15f2 ("ramips: add support for A5-V11 board (resubmit)")
      Ref: 9085b05d ("ramips: rt305x: support for wr512-3gn-like routers")
      Ref: 0e486d2f ("ramips: add support for unbranded XDX-RN502J board")
      Signed-off-by: default avatarSungbo Eo <mans0n@gorani.run>
      94d4269e
    • Kim Namu's avatar
      ramips: mt7621: add support for Zbtlink ZBT-WG1608 · 2876f753
      Kim Namu authored
      
      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: default avatarKim Namu <namu@theseed.io>
      2876f753
    • Ray Wang's avatar
      ramips: add support for Asus RT-AC1200 · 3c4810fe
      Ray Wang authored
      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: default avatarIvan Pavlov <AuthorReflex@gmail.com>
      Signed-off-by: default avatarRay Wang <raywang777@foxmail.com>
      3c4810fe
  8. Mar 08, 2022
Loading