Edgecore ECW5211 L T - jela1337/replica GitHub Wiki

Introduction

Edgecore ECW5211-L (T) is a managed network acess point featuring a quad-core Cortex-A7 ARMv7-A SoC, concurrent dual band 802.11ac Wawe-2 radios, 2x 1G RJ45 copper network ports, 1x Type-A USB port.

Building

To build firmware for the ECW5211-L (T) using Replica.one, first clone the main repository as described in docs/QUICKSTART.md.

Next, invoke the build process using make:

make CTARGET=armv7a-unknown-linux-gnueabihf package_ecw5211-l-t

Sample (cached) build can be seen here:

asciicast

Firmware

A successful build will generate the following files in the output/ directory:

  • gentoo-arm-ipq40xx-ecw5211-l-t.ubi — a UBI packaged root filesystem image for installation and updating
  • sysdesc-arm-ipq40xx-ecw5211-l-t.txt — a description of the system installation, including installed packages, package sizes, list of root filesystem contents, etc.

Flashing

The gentoo-arm-ipq40xx-ecw5211-l-t.ubi UBI packaged root filesystem image is used for installation and updating.

UART access and intermediary OpenWrt image is required.

UART access

ECW5211-L provides serial console connection via 4 pin header on the PCB.

Device needs to be opened in order to connect to the UART console.

Device can be opened via removing 4 screws on the bottom of the device and then popping the plastic clips.

UART console is then easily visible as a 4 pin already soldered header near the ethernet ports.

Pins are marked on the PCB silkscreen at the header.

3.3V UART to USB adapter is then needed (5V version may damage your device).

It can then be accessed with the following settings:

Baud rate: 115200
Data bits: 8
Stop bits: 1
Parity: None
Flow control: None

Loading OpenWrt intermediary image

Prebuilt and verified image to be used is: openwrt-ipq40xx-generic-edgecore_ecw5211-initramfs-fit-uImage.itb

TFTP server should be running and connected to the device via the Ethernet port with PoE support.

Initramfs image should be stored in the working directory of the TFTP server.

TFTP servers that can serve images via DHCP are also supported.

Device IP address: 192.168.1.11 Server IP address: 192.168.1.2

But please note that they can vary according to your environment.

Steps are as follows:

  1. Enter U-boot command console:
    • Power on the device, an once Hit any key to stop autoboot is visible hit Enter key
  2. Set device and TFTP server IP addresses
    • Set the desired device IP address with: setenv ipaddr 192.168.1.11
    • Set the desired TFTP server IP address with: setenv serverip 192.168.1.2
  3. Load the initramfs image via TFTP
    • Load the image with the following command: tftpboot 0x84000000 openwrt-ipq40xx-generic-edgecore_ecw5211-initramfs-fit-uImage.itb
  4. Run the image from RAM
    • Run the initramfs image from ram with: bootm

Flashing the Replica image

After the intermediary OpenWrt image is booted, flashing Replica is possible.

Steps are as follows:

  1. Place the gentoo-arm-ipq40xx-ecw5211-l-t.ubi image into /tmp
  2. Verify partition layout
    • Run cat /proc/mtd
    • Layout should be the following:
    root@OpenWrt:/# cat /proc/mtd 
    dev:    size   erasesize  name
    mtd0: 00040000 00010000 "0:SBL1"
    mtd1: 00020000 00010000 "0:MIBIB"
    mtd2: 00060000 00010000 "0:QSEE"
    mtd3: 00010000 00010000 "0:CDT"
    mtd4: 00010000 00010000 "0:DDRPARAMS"
    mtd5: 00010000 00010000 "0:APPSBLENV"
    mtd6: 00080000 00010000 "0:APPSBL"
    mtd7: 00010000 00010000 "0:ART"
    mtd8: 08000000 00020000 "ubi1"
    mtd9: 08000000 00020000 "ubi2"
    
  3. Write the image to both firmware partitions
    • Run: ubidetach -d 0
    • Run: ubiformat /dev/mtd8 -y -f gentoo-arm-ipq40xx-ecw5211-l-t.ubi
    • Run: ubiformat /dev/mtd9 -y -f gentoo-arm-ipq40xx-ecw5211-l-t.ubi
  4. Setup the U-boot environment
    • Run: fw_setenv active 1
    • Run: fw_setenv mtdparts 'mtdparts=nand1:128m(ubi1),128m(ubi2)'
    • Run: fw_setenv run1 'ubi part ubi${active}'
    • Run: fw_setenv run2 'ubi read 84000000 kernel'
    • Run: fw_setenv set_bootargs 'setenv bootargs ubi.mtd=ubi${active} root=ubi0:rootfs rootfstype=ubifs rw'
    • Run: fw_setenv bootcmd 'run set_bootargs && run run1 && run run2 && bootm'
  5. Run reboot

The recording below shows the procedure for flashing the Replica.one firmware:

asciicast

Lastly, the recording below shows the entire boot process:

asciicast