I'm working on porting OpenWrt to the Comfast CF-E313AC v2, which is superficially similar but internally different from the CF-E313AC. Posting here to solicit tips, pointers, criticism, etc on my first port and to document this device.
Hardware:
- Atheros QCA9563-AL3A 800MHz
- 128MB RAM (Nanya NT5TU64M16HG-AC)
- 16MB SPI NOR (MXIC MX25L12833F M2I-10G)
- QCA9886 2x2 5GHz 802.11ac
- QCA8337-AL3C 1GbE Ethernet switch
- RS706C watchdog
- 4 RSSI LEDs
- 1 WAN LED
- 1 LAN LED
- 1 WLAN LED
- 1 always-on power LED
- Serial UART solder pads and unpopulated pins
Two options tested for installation:
- Use the stock firmware's update page
- Use the uboot firmware flashing webui:
a. Hold the reset button during boot
b. When the lights start flashing, continue holding for 8 seconds
c. Give your computer an IP address like 192.168.1.10
d. Open your browser to http://192.168.1.1
e. Use the form to select and upload your sysupgrade firmware file
TFTP flashing at boot is supported from 192.168.1.10.
The uboot console seemed to have keymap issues, so was not really tested.
Serial interface settings:
uboot output: 128000,8n1
linux: 115200,8n1
uboot console: 57600,7n1?
Photos:
Boot Logs:
uboot:
U-Boot 1.1.4-ga1cd7d4b-dirty (Jun 9 2018 - 13:05:32)
ap152 - Dragonfly 1.0DRAM:
sri
ath_ddr_initial_config(283): (ddr2 init)
ath_sys_frequency: cpu 775 ddr 650 ahb 258
Tap values = (0x10, 0x10, 0x10, 0x10)
128 MB
flash size 16MB, sector count = 256
Flash: 16 MB
*** Warning - bad CRC, using default environment
ath_gmac_enet_initialize...
No valid address in Flash. Using fixed address
ath_gmac_enet_initialize: reset mask:c02200
athr_mgmt_init ::done
Dragonfly ----> S17 PHY *
athrs17_reg_init: complete
SGMII in forced mode
athr_gmac_sgmii_setup SGMII done
: cfg1 0x80000000 cfg2 0x7114
eth0: 22:22:22:22:22:22
eth0 up
Setting 0x181162c0 to 0x28502100
eth0 link down
FAIL
Using eth0 device
Tx Timed out
Tx Timed out
ping failed;
Hit any key to stop autoboot: 1 0
## Booting image at 9f050000 ...
Image Name: MIPS OpenWrt Linux-3.10.44
Created: 2024-12-05 6:26:20 UTC
Image Type: MIPS Linux Kernel Image (lzma compressed)
Data Size: 1243756 Bytes = 1.2 MB
Load Address: 80060000
Entry Point: 80060000
Verifying Checksum at 0x9f050040 ...OK
Uncompressing Kernel Image ... OK
No initrd
## Transferring control to Linux (at address 80060000) ...
## Giving linux memsize in bytes, 134217728
Starting kernel ...
Stock:
[ 0.000000] Linux version 3.10.44 (mrbao@ubuntu) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 unknown) ) #1 Wed Dec 4 22:25:31 PST 2024
[ 0.000000] bootconsole [early0] enabled
[ 0.000000] CPU revision is: 00019750 (MIPS 74Kc)
[ 0.000000] SoC: Qualcomm Atheros QCA9561 ver 1 rev 0
[ 0.000000] Clocks: CPU:800.000MHz, DDR:650.000MHz, AHB:266.666MHz, Ref:25.000MHz
[ 0.000000] Determined physical RAM map:
[ 0.000000] memory: 08000000 @ 00000000 (usable)
[ 0.000000] Initrd not found or empty - disabling initrd
[ 0.000000] Zone ranges:
[ 0.000000] Normal [mem 0x00000000-0x07ffffff]
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x00000000-0x07ffffff]
[ 0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
[ 0.000000] Primary data cache 32kB, 4-way, VIPT, cache aliases, linesize 32 bytes
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 32512
[ 0.000000] Kernel command line: board=COMFAST-CF-A5 console=ttyS0,115200 mtdparts=spi0.0:256k(u-boot)ro,64k(art)ro,1536k(kernel),14400k(rootfs),64k(configs),64k(nvram)ro,15936k@0x50000(firmware) rootfstype=squashfs,jffs2 noinitrd
[ 0.000000] PID hash table entries: 512 (order: -1, 2048 bytes)
[ 0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
[ 0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
[ 0.000000] Writing ErrCtl register=00000000
[ 0.000000] Readback ErrCtl register=00000000
[ 0.000000] Memory: 125464k/131072k available (2683k kernel code, 5608k reserved, 783k data, 244k init, 0k highmem)
[ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] NR_IRQS:51
[ 0.000000] Calibrating delay loop... 398.13 BogoMIPS (lpj=1990656)
[ 0.060000] pid_max: default: 32768 minimum: 301
[ 0.060000] Mount-cache hash table entries: 512
[ 0.070000] NET: Registered protocol family 16
[ 0.070000] MIPS: machine is COMFAST CF-A5
[ 0.300000] registering PCI controller with io_map_base unset
[ 0.310000] bio: create slab <bio-0> at 0
[ 0.320000] usbcore: registered new interface driver usbfs
[ 0.320000] usbcore: registered new interface driver hub
[ 0.330000] usbcore: registered new device driver usb
[ 0.330000] PCI host bridge to bus 0000:00
[ 0.330000] pci_bus 0000:00: root bus resource [mem 0x12000000-0x13ffffff]
[ 0.340000] pci_bus 0000:00: root bus resource [io 0x0001]
[ 0.340000] pci_bus 0000:00: No busn resource found for root bus, will use [bus 00-ff]
[ 0.350000] pci 0000:00:00.0: invalid calibration data
[ 0.350000] pci 0000:00:00.0: BAR 0: assigned [mem 0x12000000-0x121fffff 64bit]
[ 0.360000] pci 0000:00:00.0: using irq 40 for pin 1
[ 0.360000] Switching to clocksource MIPS
[ 0.370000] NET: Registered protocol family 2
[ 0.370000] TCP established hash table entries: 1024 (order: 1, 8192 bytes)
[ 0.370000] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.380000] TCP: Hash tables configured (established 1024 bind 1024)
[ 0.380000] TCP: reno registered
[ 0.390000] UDP hash table entries: 256 (order: 0, 4096 bytes)
[ 0.390000] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[ 0.400000] NET: Registered protocol family 1
[ 0.410000] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[ 0.420000] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[ 0.430000] msgmni has been set to 245
[ 0.430000] io scheduler noop registered
[ 0.440000] io scheduler deadline registered (default)
[ 0.440000] Serial: 8250/16550 driver, 1 ports, IRQ sharing disabled
[ 0.470000] serial8250.0: ttyS0 at MMIO 0x18020000 (irq = 11) is a 16550A
[ 0.480000] console [ttyS0] enabled, bootconsole disabled
[ 0.480000] console [ttyS0] enabled, bootconsole disabled
[ 0.490000] ath79-spi ath79-spi: master is unqueued, this is deprecated
[ 0.500000] m25p80 spi0.0: found mx25l12805d, expected m25p80
[ 0.500000] m25p80 spi0.0: mx25l12805d (16384 Kbytes)
[ 0.510000] 7 cmdlinepart partitions found on MTD device spi0.0
[ 0.510000] Creating 7 MTD partitions on "spi0.0":
[ 0.520000] 0x000000000000-0x000000040000 : "u-boot"
[ 0.530000] 0x000000040000-0x000000050000 : "art"
[ 0.530000] 0x000000050000-0x0000001d0000 : "kernel"
[ 0.540000] 0x0000001d0000-0x000000fe0000 : "rootfs"
[ 0.540000] mtd: device 3 (rootfs) set to be root filesystem
[ 0.550000] 1 squashfs-split partitions found on MTD device rootfs
[ 0.560000] 0x0000007d0000-0x000000fe0000 : "rootfs_data"
[ 0.560000] 0x000000fe0000-0x000000ff0000 : "configs"
[ 0.570000] 0x000000ff0000-0x000001000000 : "nvram"
[ 0.570000] 0x000000050000-0x000000fe0000 : "firmware"
[ 0.590000] switch0: Atheros AR8337 rev. 2 switch registered on ag71xx-mdio.0
[ 0.670000] libphy: ag71xx_mdio: probed
[ 0.680000] eth0: Atheros AG71xx at 0xb9000000, irq 4
[ 1.230000] ag71xx ag71xx.0: connected to PHY at ag71xx-mdio.0:00 [uid=004dd036, driver=Atheros AR8216/AR8236/AR8316]
[ 1.240000] PPP generic driver version 2.4.2
[ 1.250000] PPP BSD Compression module registered
[ 1.250000] PPP Deflate Compression module registered
[ 1.260000] PPP MPPE Compression module registered
[ 1.260000] NET: Registered protocol family 24
[ 1.270000] PPTP driver version 0.8.5
[ 1.270000] usbcore: registered new interface driver cdc_ether
[ 1.280000] usbcore: registered new interface driver rndis_host
[ 1.280000] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 1.290000] ehci-pci: EHCI PCI platform driver
[ 1.290000] ehci-platform: EHCI generic platform driver
[ 1.300000] usbcore: registered new interface driver cdc_acm
[ 1.300000] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
[ 1.310000] usbcore: registered new interface driver usbserial
[ 1.320000] usbcore: registered new interface driver usbserial_generic
[ 1.330000] usbserial: USB Serial support registered for generic
[ 1.330000] usbcore: registered new interface driver usb_debug
[ 1.340000] usbserial: USB Serial support registered for debug
[ 1.340000] usbcore: registered new interface driver option
[ 1.350000] usbserial: USB Serial support registered for GSM modem (1-port)
[ 1.360000] gre: GRE over IPv4 demultiplexor driver
[ 1.360000] TCP: cubic registered
[ 1.370000] NET: Registered protocol family 17
[ 1.370000] Bridge firewalling registered
[ 1.370000] l2tp_core: L2TP core driver, V2.0
[ 1.380000] l2tp_ppp: PPPoL2TP kernel driver, V2.0
[ 1.380000] 8021q: 802.1Q VLAN Support v1.8
[ 1.390000] VFS: Mounted root (squashfs filesystem) readonly on device 31:3.
[ 1.400000] Freeing unused kernel memory: 244K (803c3000 - 80400000)
[ 2.310000] init: Console is alive
[ 2.320000] init: - watchdog -
[ 3.320000] init: - preinit -
Press the [f] key and hit [enter] to enter failsafe mode
Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level
[ 6.240000] eth0: link up (1000Mbps/Full duplex)
[ 6.780000] jffs2: notice: (446) jffs2_build_xattr_subsystem: complete building xattr subsystem, 2 of xdatum (2 unchecked, 0 orphan) and 55 of xref (0 dead, 43 orphan) found.
[ 6.790000] mount_root: switching to jffs2 overlay
529+0 records in
529+0 records out
377+0 records in
377+0 records out
[ 7.100000] eth0: link down
[ 7.110000] procd: - early -
[ 7.110000] procd: - watchdog -
[ 7.810000] procd: - ubus -
[ 8.830000] procd: - init -
Please press Enter to activate this console.
[ 10.440000] natsemi dp8381x driver, version 2.1, Sept 11, 2006
[ 10.440000] originally by Donald Becker <becker@scyld.com>
[ 10.440000] 2.4.x kernel port by Jeff Garzik, Tjeerd Mulder
[ 10.470000] ip_gre: GRE over IPv4 tunneling driver
[ 10.480000] i2c /dev entries driver
[ 10.500000] Loading modules backported from Linux version master-2014-05-22-0-gf2032ea
[ 10.510000] Backport generated by backports.git backports-20140320-37-g5c33da0
[ 10.640000] PCI: Enabling device 0000:00:00.0 (0000 -> 0002)
[ 10.650000] ath10k_pci 0000:00:00.0: pci irq legacy oper_irq_mode 1 irq_mode 0 reset_mode 0
[ 11.530000] ath10k_pci 0000:00:00.0: qca9888 hw2.0 target 0x01000000 chip_id 0x00000000 sub 0000:0000
[ 11.540000] ath10k_pci 0000:00:00.0: kconfig debug 1 debugfs 0 tracing 1 dfs 1 testmode 1
[ 11.560000] ath10k_pci 0000:00:00.0: firmware ver 10.4-3.5.3-00053 api 5 features no-p2p,mfp,peer-flow-ctrl,allows-mesh-bcast crc32 a9603656
[ 11.920000] ath10k_pci 0000:00:00.0: board_file api 1 bmi_id 0:0 crc32 5f6d65e7
[ 13.720000] ath10k_pci 0000:00:00.0: htt-ver 2.2 wmi-op 6 htt-op 4 cal otp max-sta 512 raw 0 hwcrypto 1
[ 13.810000] can't open that file
[ 13.810000] can't open that filecan't open that file[ 13.830000] u32 classifier
[ 13.830000] input device check on
[ 13.830000] Actions configured
[ 13.850000] Mirror/redirect action on
[ 13.870000] nf_conntrack version 0.5.0 (1964 buckets, 7856 max)
[ 13.900000] Ebtables v2.0 registered
[ 13.900000] ip_tables: (C) 2000-2006 Netfilter Core Team
[ 13.920000] mac80211_hwsim: Unknown symbol ieee80211_iterate_active_interfaces (err 0)
[ 13.990000] Netfilter messages via NETLINK v0.30.
[ 14.020000] xt_time: kernel timezone is -0000
[ 14.030000] mac80211_hwsim: Unknown symbol ieee80211_iterate_active_interfaces (err 0)
[ 14.050000] ctnetlink v0.93: registering with nfnetlink.
[ 14.060000] mac80211_hwsim: Unknown symbol ieee80211_iterate_active_interfaces (err 0)
[ 14.080000] mac80211_hwsim: Unknown symbol ieee80211_iterate_active_interfaces (err 0)
[ 21.520000] device eth0.1 entered promiscuous mode
[ 21.520000] device eth0 entered promiscuous mode
[ 21.580000] device eth0.2 entered promiscuous mode
[ 23.420000] eth0: link up (1000Mbps/Full duplex)
[ 23.420000] br-lan: port 1(eth0.1) entered forwarding state
[ 23.430000] br-lan: port 1(eth0.1) entered forwarding state
[ 23.430000] br-wan: port 1(eth0.2) entered forwarding state
[ 23.440000] br-wan: port 1(eth0.2) entered forwarding state
[ 25.430000] br-lan: port 1(eth0.1) entered forwarding state
[ 25.430000] Atheros AR8216/AR8236/AR8316 ag71xx-mdio.0:00: Port 2 is up
[ 25.440000] br-wan: port 1(eth0.2) entered forwarding state
configs:do check configs
[ 29.200000] device wlan0 entered promiscuous mode
COMFAST login: root
Password:
BusyBox v1.26.2 () built-in shell (ash)
root@COMFAST:~#