ramips: add support for UniElec U7628-01

UniElec U7628-01 is a router platform board based on MediaTek MT7628AN.
The device has the following specifications:

- MT7628AN (580MHz)
- 64/128/256 MB of RAM (DDR2)
- 8/16 MB of flash (SPI NOR)
- 5x 10/100 Mbps Ethernet (MT7628 built-in switch)
- 1x 2T2R 2.4 GHz Wi-Fi (MT7628)
- 1x miniPCIe slot (with PCIe and USB 2.0 buses)
- 1x miniSIM slot
- 1x microSD slot
- 1x USB 2.0 port
- 7x single-color LEDs (GPIO-controlled)
- 1x bi-color LED (green GPIO-controlled, red -> LED_WLAN# in miniPCIe)
- 1x reset button
- 1x UART header (4-pins)
- 1x SDXC/GPIO header (10-pins, connected with microSD slot)
- 1x DC jack for main power (12 V)

The following has been tested and is working:

- Ethernet switch
- miniPCIe slot (tested with modem and Wi-Fi card)
- miniSIM slot
- sysupgrade
- reset button
- USB 2.0 port*

Due to a missing driver (MMC over GPIO) this is not supported:

- microSD card reader

* Warning:
USB buses in miniPCIe and regular A-type socket are connected together,
without any proper analog switch or USB HUB.

Installation:

This board might come with a different firmware versions (MediaTek SDK,
PandoraBox, Padavan, etc.). If your board comes with PandoraBox, you can
install LEDE using sysupgrade. Just SSH to the router and perform forced
sysupgrade (due to a board name mismatch). The default IP of this board
should be: 192.168.1.1 and username/password: root/admin. In case of a
different firmware, you can use web based recovery described below.

Use the following command to perform the sysupgrade (for the 128MB
RAM/16MB flash version):

sysupgrade -n -F lede-ramips-mt76x8-u7628-01-128M-16M-squashfs-sysupgrade.bin

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.

SDXC/GPIO header (J3):

 1. SDXC_D3  / I2C_SCLK
 2. SDXC_D2  / I2C_SD
 3. SDXC_D1  / I2S_DI
 4. SDXC_D0  / I2S_WS
 5. SDXC_CMD / I2S_CLK
 6. SDXC_CLK / GPIO0
 7. SDXC_CD  / UART_RXD1
 8. UART_TXD1
 9. 3V3
10. GND

Other notes:

1. The board is available with different amounts of RAM and flash. We
have only added support for the 128/16 MB configuration, as that seems
to be the default. However, all the required infrastructure is in place
for making support for the other configurations easy.

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
Signed-off-by: Kristian Evensen <kristian.evensen@gmail.com>
master
Piotr Dymacz 7 years ago
parent 46ab81e405
commit fa36bea470
  1. 9
      target/linux/ramips/base-files/etc/board.d/01_leds
  2. 1
      target/linux/ramips/base-files/etc/board.d/02_network
  3. 3
      target/linux/ramips/base-files/etc/diag.sh
  4. 3
      target/linux/ramips/base-files/lib/ramips.sh
  5. 1
      target/linux/ramips/base-files/lib/upgrade/platform.sh
  6. 83
      target/linux/ramips/dts/U7628-01-128M-16M.dts
  7. 132
      target/linux/ramips/dts/U7628-01.dtsi
  8. 8
      target/linux/ramips/image/mt76x8.mk

@ -372,6 +372,15 @@ u25awf-h1)
set_wifi_led "u25awf:red:wifi"
ucidef_set_led_netdev "eth" "eth" "u25awf:green:lan" "eth0"
;;
u7628-01-128M-16M)
ucidef_set_led_switch "lan1" "lan1" "u7628-01:green:lan1" "switch0" "0x2"
ucidef_set_led_switch "lan2" "lan2" "u7628-01:green:lan2" "switch0" "0x4"
ucidef_set_led_switch "lan3" "lan3" "u7628-01:green:lan3" "switch0" "0x8"
ucidef_set_led_switch "lan4" "lan4" "u7628-01:green:lan4" "switch0" "0x10"
ucidef_set_led_switch "wan" "wan" "u7628-01:green:wan" "switch0" "0x01"
set_usb_led "u7628-01:green:usb"
set_wifi_led "u7628-01:green:wlan"
;;
vocore-8M|\
vocore-16M)
ucidef_set_led_netdev "eth" "ETH" "vocore:orange:eth" "eth0"

@ -174,6 +174,7 @@ ramips_setup_interfaces()
tl-wr840n-v4|\
tl-wr840n-v5|\
tl-wr841n-v13|\
u7628-01-128M-16M|\
ubnt-erx|\
ubnt-erx-sfp|\
ur-326n4g|\

@ -246,6 +246,9 @@ get_status_led() {
u7621-06-256M-16M)
status_led="u7621-06:green:status"
;;
u7628-01-128M-16M)
status_led="u7628-01:green:power"
;;
v22rw-2x2)
status_led="$board:green:security"
;;

@ -514,6 +514,9 @@ ramips_board_detect() {
*"U7621-06 (256M RAM/16M flash)")
name="u7621-06-256M-16M"
;;
*"U7628-01 (128M RAM/16M flash)")
name="u7628-01-128M-16M"
;;
*"UBNT-ERX")
name="ubnt-erx"
;;

@ -146,6 +146,7 @@ platform_check_image() {
tiny-ac|\
u25awf-h1|\
u7621-06-256M-16M|\
u7628-01-128M-16M|\
ur-326n4g|\
ur-336un|\
v22rw-2x2|\

@ -0,0 +1,83 @@
/*
* BSD LICENSE
*
* Copyright(c) 2017 Kristian Evensen <kristian.evensen@gmail.com>.
* Copyright(c) 2017 Piotr Dymacz <pepe2k@gmail.com>.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* * Neither the name of Broadcom Corporation nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/dts-v1/;
#include "U7628-01.dtsi"
/ {
compatible = "unielec,u7628-01-128m-16m", "unielec,u7628-01", "mediatek,mt7628an-soc";
model = "UniElec U7628-01 (128M RAM/16M flash)";
memory@0 {
device_type = "memory";
reg = <0x0 0x8000000>;
};
};
&spi0 {
status = "okay";
m25p80@0 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <12000000>;
m25p,chunked-io = <32>;
partition@0 {
label = "bootloader";
reg = <0x0 0x30000>;
read-only;
};
partition@30000 {
label = "config";
reg = <0x30000 0x10000>;
read-only;
};
factory: partition@40000 {
label = "factory";
reg = <0x40000 0x10000>;
read-only;
};
partition@50000 {
label = "firmware";
reg = <0x50000 0xfb0000>;
};
};
};

@ -0,0 +1,132 @@
/*
* BSD LICENSE
*
* Copyright(c) 2017 Kristian Evensen <kristian.evensen@gmail.com>.
* Copyright(c) 2017 Piotr Dymacz <pepe2k@gmail.com>.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* * Neither the name of Broadcom Corporation nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include "mt7628an.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
/ {
compatible = "unielec,u7628-01", "mediatek,mt7628an-soc";
chosen {
bootargs = "console=ttyS0,115200";
};
gpio-keys-polled {
compatible = "gpio-keys-polled";
#address-cells = <1>;
#size-cells = <0>;
poll-interval = <20>;
reset {
label = "reset";
gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
linux,code = <KEY_RESTART>;
};
};
gpio-leds {
compatible = "gpio-leds";
power {
label = "u7628-01:green:power";
gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;
};
wlan {
label = "u7628-01:green:wlan";
gpios = <&gpio0 11 GPIO_ACTIVE_LOW>;
};
wan {
label = "u7628-01:green:wan";
gpios = <&gpio1 11 GPIO_ACTIVE_LOW>;
};
lan1 {
label = "u7628-01:green:lan1";
gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
};
lan2 {
label = "u7628-01:green:lan2";
gpios = <&gpio1 9 GPIO_ACTIVE_LOW>;
};
lan3 {
label = "u7628-01:green:lan3";
gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
};
lan4 {
label = "u7628-01:green:lan4";
gpios = <&gpio1 7 GPIO_ACTIVE_LOW>;
};
usb {
label = "u7628-01:green:usb";
gpios = <&gpio1 5 GPIO_ACTIVE_LOW>;
};
};
};
&gpio0 {
status = "okay";
};
&gpio1 {
status = "okay";
};
&pcie {
status = "okay";
};
&ethernet {
mtd-mac-address = <&factory 0x28>;
};
&wmac {
status = "okay";
ralink,mtd-eeprom = <&factory 0x0>;
};
&pinctrl {
state_default: pinctrl0 {
gpio {
ralink,group = "gpio", "p0led_an", "p1led_an", "p2led_an", "p3led_an", "p4led_an", "perst", "wdt", "wled_an";
ralink,function = "gpio";
};
};
};

@ -124,6 +124,14 @@ define Device/tl-wr841n-v13
endef
TARGET_DEVICES += tl-wr840n-v4 tl-wr840n-v5 tl-wr841n-v13
define Device/u7628-01-128M-16M
DTS := U7628-01-128M-16M
IMAGE_SIZE := 16064k
DEVICE_TITLE := UniElec U7628-01 (128M RAM/16M flash)
DEVICE_PACKAGES := kmod-usb2 kmod-usb-ohci kmod-usb-ledtrig-usbport
endef
TARGET_DEVICES += u7628-01-128M-16M
define Device/vocore2
DTS := VOCORE2
IMAGE_SIZE := $(ralink_default_fw_size_16M)

Loading…
Cancel
Save