Skip to content
Snippets Groups Projects
  • Bjørn Mork's avatar
    c1794d65
    ramips: add support for ZyXEL WAP6805 (Altibox WiFi+) · c1794d65
    Bjørn Mork authored
    
    Hardware
    --------
    SoC:   MediaTek MT7621ST
    WiFi:  MediaTek MT7603
           Quantenna QT3840BC
    Flash: 128M NAND
    RAM:   64M
    LED:   Dual colour red and green
    BTN:   Reset
           WPS
    Eth:   4 x 10/100/1000 connected to MT7621 internal switch
           MT7621 RGMII port connected to Quantenna module
    GPIO:  Power/reset of Quantenna module
    
    Quantenna module
    ----------------
    
    The Quantenna QT3840BC (or QV840) is a separate SoC running
    another Linux installation.  It is mounted on a wide mini-PCIe
    form factor module, but is connected to the RGMII port of
    the MT7621.  It loads both a second uboot stage and an os
    image from the MT7621 using tftp.  The module is configured
    using Quantenna specific RPC calls over IP, using 802.1q
    over the RGMII link to support multiple SSIDs.
    
    There is no support for using this module as a WiFi device
    in OpenWrt. A package with basic firmware and management
    tools is being prepared.
    
    Serial ports
    ------------
    
    Two serial ports with headers:
    
    RRJ1 - 115200 8N1 - Connected to the Quantenna console
    J1   -  57600 8N1 - Connected to the MT7621 console
    
    Both share pinout with many other Zyxel/Mitrastar devices:
    
    1 - NC (VDD)
    2 - TX
    3 - RX
    4 - NC (no pin)
    5 - GND
    
    Dual system partitions
    ----------------------
    
    The vendor firmware and boot loader use a dual partition
    scheme storing a counter in the header of each partition. The
    partition with the highest number will be selected for boot.
    
    OpenWrt does not support this scheme and will always use the
    first OS partition.  It will reset both counters to zero the
    first time sysupgrade is run, making sure the first partition
    is selected by the boot loader.
    
    Installation from vendor firmware
    ---------------------------------
    
    1. Run a DHCP server. The WAP6805 is configured as a client device
       and does not have a default static IP address. Make a note of
       which address it is assigned
    
    2. tftp the OpenWrt initramfs-kernel.bin image to this address.
       Wait for the WAP6805 to reboot.
    
    3. ssh to the OpenWrt initramfs system on 192.168.1.1. Make a
       backup of all mtd partitions now.  The last used OEM image is
       still present in either "Kernel" or "Kernel2" at this point,
       and can be restored later if you save a copy.
    
    4. sysupgrade to the OpenWrt sysupgrade.bin image.
    
    Installation from U-Boot
    ------------------------
    
    This requires serial console access
    
    1. Copy the OpenWrt initramfs-kernel.bin image as "ras.bin" to
       your tftp server directory.  Configure the server address as
       192.168.0.33/24
    
    2. Hit ESC when the message "Hit ESC key to stop autoboot"
       appears
    
    3. Type "ATGU" + Enter, and then "2" immediately after pressing enter.
    
    4. Answer Y to the question "Erase Linux in Flash then burn new
       one. Are you sure?", and answer the address/filename questions.
       Defaults:
            Input device IP (192.168.0.2)
            Input server IP (192.168.0.33)
            Input Linux Kernel filename ("ras.bin")
    
    5. Wait until after you see the message "Done!" and power cycle
       the device.  It will hang after flashing.
    
    6. Continue with step 3 and 4 from the vendor firmware procedure.
    
    Notes on the WAP6805 U-Boot
    ---------------------------
    The bootloader has been modified with both ZyXELs zyloader and the
    device specific dual partition scheme.  These changes appear to have
    broken a few things.  The zyloader shell claims to support a number
    of ZyXEL AT commands, but not all of them work.  The image selection
    scheme is unreliable and inconsistent.  A limited U-Boot menu is
    available - and used by the above U-Boot install procedure.  But
    direct booting into an uploaded image does not work, neither with
    ram nor with flash.  Flashing works, but requires a hard reset after
    it is finished.
    
    Reverting to OEM firmware
    -------------------------
    
    The OEM firmware can be restored by using mtd write from OpenWrt,
    flashing it to the "Kernel" partition. E.g.
    
      ssh root@192.168.1.1 "mtd -r -e Kernel write - Kernel" < oem.bin
    
    OEM firmwares for the WAP6805 are not avaible for public download,
    so a backup of the original installation is required.  See above.
    
    Alternatively, firmware for the WAP6806 (Armor X1) may be used. This
    is exactly the same hardware.  But the branding features do obviously
    differ.
    
    LED controller
    --------------
    
    Hardware implementation is unknown.  The dual-color LED is controlled
    by 3 GPIOs:
    
      4: red
      7: blinking green
     13: green
    
    Enabling both red and green makes the LED appear yellow.
    
    The boot loader enables hardware blinking, causing the green LED to blink
    slowly on power-on, until the OpenWrt boot mode starts a faster software
    blink.
    
    Signed-off-by: default avatarBjørn Mork <bjorn@mork.no>
    [fix alphabetic sorting for image build statement]
    Signed-off-by: default avatarPetr Štetiar <ynezz@true.cz>
    c1794d65
    History
    ramips: add support for ZyXEL WAP6805 (Altibox WiFi+)
    Bjørn Mork authored
    
    Hardware
    --------
    SoC:   MediaTek MT7621ST
    WiFi:  MediaTek MT7603
           Quantenna QT3840BC
    Flash: 128M NAND
    RAM:   64M
    LED:   Dual colour red and green
    BTN:   Reset
           WPS
    Eth:   4 x 10/100/1000 connected to MT7621 internal switch
           MT7621 RGMII port connected to Quantenna module
    GPIO:  Power/reset of Quantenna module
    
    Quantenna module
    ----------------
    
    The Quantenna QT3840BC (or QV840) is a separate SoC running
    another Linux installation.  It is mounted on a wide mini-PCIe
    form factor module, but is connected to the RGMII port of
    the MT7621.  It loads both a second uboot stage and an os
    image from the MT7621 using tftp.  The module is configured
    using Quantenna specific RPC calls over IP, using 802.1q
    over the RGMII link to support multiple SSIDs.
    
    There is no support for using this module as a WiFi device
    in OpenWrt. A package with basic firmware and management
    tools is being prepared.
    
    Serial ports
    ------------
    
    Two serial ports with headers:
    
    RRJ1 - 115200 8N1 - Connected to the Quantenna console
    J1   -  57600 8N1 - Connected to the MT7621 console
    
    Both share pinout with many other Zyxel/Mitrastar devices:
    
    1 - NC (VDD)
    2 - TX
    3 - RX
    4 - NC (no pin)
    5 - GND
    
    Dual system partitions
    ----------------------
    
    The vendor firmware and boot loader use a dual partition
    scheme storing a counter in the header of each partition. The
    partition with the highest number will be selected for boot.
    
    OpenWrt does not support this scheme and will always use the
    first OS partition.  It will reset both counters to zero the
    first time sysupgrade is run, making sure the first partition
    is selected by the boot loader.
    
    Installation from vendor firmware
    ---------------------------------
    
    1. Run a DHCP server. The WAP6805 is configured as a client device
       and does not have a default static IP address. Make a note of
       which address it is assigned
    
    2. tftp the OpenWrt initramfs-kernel.bin image to this address.
       Wait for the WAP6805 to reboot.
    
    3. ssh to the OpenWrt initramfs system on 192.168.1.1. Make a
       backup of all mtd partitions now.  The last used OEM image is
       still present in either "Kernel" or "Kernel2" at this point,
       and can be restored later if you save a copy.
    
    4. sysupgrade to the OpenWrt sysupgrade.bin image.
    
    Installation from U-Boot
    ------------------------
    
    This requires serial console access
    
    1. Copy the OpenWrt initramfs-kernel.bin image as "ras.bin" to
       your tftp server directory.  Configure the server address as
       192.168.0.33/24
    
    2. Hit ESC when the message "Hit ESC key to stop autoboot"
       appears
    
    3. Type "ATGU" + Enter, and then "2" immediately after pressing enter.
    
    4. Answer Y to the question "Erase Linux in Flash then burn new
       one. Are you sure?", and answer the address/filename questions.
       Defaults:
            Input device IP (192.168.0.2)
            Input server IP (192.168.0.33)
            Input Linux Kernel filename ("ras.bin")
    
    5. Wait until after you see the message "Done!" and power cycle
       the device.  It will hang after flashing.
    
    6. Continue with step 3 and 4 from the vendor firmware procedure.
    
    Notes on the WAP6805 U-Boot
    ---------------------------
    The bootloader has been modified with both ZyXELs zyloader and the
    device specific dual partition scheme.  These changes appear to have
    broken a few things.  The zyloader shell claims to support a number
    of ZyXEL AT commands, but not all of them work.  The image selection
    scheme is unreliable and inconsistent.  A limited U-Boot menu is
    available - and used by the above U-Boot install procedure.  But
    direct booting into an uploaded image does not work, neither with
    ram nor with flash.  Flashing works, but requires a hard reset after
    it is finished.
    
    Reverting to OEM firmware
    -------------------------
    
    The OEM firmware can be restored by using mtd write from OpenWrt,
    flashing it to the "Kernel" partition. E.g.
    
      ssh root@192.168.1.1 "mtd -r -e Kernel write - Kernel" < oem.bin
    
    OEM firmwares for the WAP6805 are not avaible for public download,
    so a backup of the original installation is required.  See above.
    
    Alternatively, firmware for the WAP6806 (Armor X1) may be used. This
    is exactly the same hardware.  But the branding features do obviously
    differ.
    
    LED controller
    --------------
    
    Hardware implementation is unknown.  The dual-color LED is controlled
    by 3 GPIOs:
    
      4: red
      7: blinking green
     13: green
    
    Enabling both red and green makes the LED appear yellow.
    
    The boot loader enables hardware blinking, causing the green LED to blink
    slowly on power-on, until the OpenWrt boot mode starts a faster software
    blink.
    
    Signed-off-by: default avatarBjørn Mork <bjorn@mork.no>
    [fix alphabetic sorting for image build statement]
    Signed-off-by: default avatarPetr Štetiar <ynezz@true.cz>