Freedom CPE

This device is NOT RECOMMENDED for future use with OpenWrt due to low flash/ram.
DO NOT BUY DEVICES WITH 4MB FLASH / 32MB RAM if you intend to flash an up-to-date and secure OpenWrt version onto it! See 4/32 warning for details.

1) This device does not have sufficient resources (flash and/or RAM) to provide secure and reliable operation.
This means that even setting a password or changing simple network settings might not be possible any more, rendering the device effectively useless. See OpenWrt on 4/32 devices what you can do now.

2) OpenWrt support for this device has ended in 2022.
19.07.10 was the last official build for 4/32 devices.

The Freedom CPE is based upon the Atheros AR5312 Wireless SoC. The Freedom CPE delivers dual-band, single channel, 2.4GHz/5.8GHz capability in a 85mmx85mm form.

Version/Model S/N OpenWrt Version Supported Model Specific Notes
Rev 05 n/a Backfire 10.03 -
CPU Ram Flash Network USB Serial JTag
Atheros AR5312@220MHz 32MiB 8MiB 1 No Yes Yes

You may need to upgrade the bootloader on your board prior to installing of OpenWrt, because they were shipped with a bootloader which checks CRC on the installed firmware. You have to go to the Abicom's support page to obtain a new bootloader image which have ability to disable CRC checking.

Once you have a suitable bootloader and you can access it via serial console you can install OpenWrt with the following method.

You have to download two files:

Copy openwrt-atheros-vmlinux.lzma and openwrt-atheros-root.squashfs to /tftpboot/ and flash them with the following method.

Configure the IP address of the board

RedBoot> ip_address -h -l
IP:, Gateway:
Default server:

Initialize the FLASH image system

RedBoot> fis init -y
*** Initialize FLASH Image System
... Erase from 0xbe7fa000-0xbe7fc000: .
... Program from 0x80fee400-0x80ff0400 at 0xbe7fa000: .

You have a default flash layout now:

RedBoot> fis list
Name              FLASH addr  Mem addr    Length      Entry point
RedBoot           0xBE000000  0xBE000000  0x00030000  0x00000000
APConfig          0xBE7D0000  0xBE7D0000  0x00020000  0x00000000
OEMData           0xBE7F0000  0xBE7F8000  0x00008000  0x00000000
RedBoot config    0xBE7F8000  0xBE7F8000  0x00002000  0x00000000
FIS directory     0xBE7FA000  0xBE7FA000  0x00002000  0x00000000

Load the kernel from the TFTP server

RedBoot> load -r -b %{FREEMEMLO} openwrt-atheros-vmlinux.lzma
Using default protocol (TFTP)
Raw file loaded 0x80000400-0x800e03ff, assumed entry at 0x80000400

Flash the kernel into the board


  • The values for the -e and -r switches in the 'fis create' RedBoot command below is the Kernel entry point. Do not change those values.
RedBoot> fis create -e 0x80041000 -r 0x80041000 vmlinux.bin.l7
... Erase from 0xbe030000-0xbe110000: ..............
... Program from 0x80000400-0x800e0400 at 0xbe030000: ..............
... Erase from 0xbe7fa000-0xbe7fc000: .
... Program from 0x80fee400-0x80ff0400 at 0xbe7fa000: .

Load the rootfs image from the TFTP server

RedBoot> load -r -b %{FREEMEMLO} openwrt-atheros-root.squashfs
Using default protocol (TFTP)
Raw file loaded 0x80000400-0x801c03ff, assumed entry at 0x80000400

Flash the rootfs image

'fis free' will print the first and last free block

RedBoot> fis free
0xBE110000 .. 0xBE7D0000

Now do the math (last - first, cause you need the difference)

0xBE7D0000 - 0xBE110000 = 0x6C0000

And use the computed value for the -l switch in the 'fis create' RedBoot command below.

RedBoot> fis create -l 0x6C0000 rootfs
... Erase from 0xbe110000-0xbe7d0000: ............................................................................................................
... Program from 0x80000400-0x801c0400 at 0xbe110000: ............................
... Erase from 0xbe7fa000-0xbe7fc000: .
... Program from 0x80fee400-0x80ff0400 at 0xbe7fa000: .

Upgrade RedBoots's configuration


  • You have to disable CRC checking because the bootloader won't load the OpenWrt image if it is enabled.
  • The boot script is needed for automatic booting.
  • OpenWrt logs to its serial console with 9600bps, so you must have to set the same baud rate.
RedBoot> fconfig
Disable CRC Checking: true
Automatic FirmwareUpdate: false
Run script at boot: true
Boot script:
.. fis load -l vmlinux.bin.l7
.. exec
Enter script, terminate with empty line
>> fis load -l vmlinux.bin.l7
>> exec
Boot script timeout (1000ms resolution): 3
Use BOOTP for network configuration: false
Gateway IP address:
Local IP address:
Local IP address mask:
Default server IP address:
Console baud rate: 9600
GDB connection port: 9000
Force console for special debug messages: false
Network debug at boot time: false
Safe Console: true
Update RedBoot non-volatile configuration - continue (y/n)? y
cfgbase 0xbe7f8000 cfgsize 2000
... Erase from 0xbe7f8000-0xbe7fa000: .
... Program from 0x80fe1400-0x80fe2400 at 0xbe7f8000: .

Finally, reset the board:

RedBoot> reset 

If you have already installed OpenWrt and like to reflash for e.g. upgrading to a new OpenWrt version you can upgrade using the sysupgrade command line tool.

It is important that you put the firmware image into the ramdisk (/tmp) before you start flashing.

root@OpenWrt:/# cd /tmp
root@OpenWrt:/tmp# wget
Connecting to (
openwrt-atheros-comb 100% |*******************************|  2752k 00:00:00 ETA

When it is done, use the sysupgrade command to flash it:

root@OpenWrt:/tmp# sysupgrade openwrt-atheros-combined.squashfs.img
Saving config files...
Switching to ramdisk...
mount: mounting mini_fo:/overlay on /mnt failed: Function not implemented
Performing system upgrade...
Unlocking vmlinux.bin.l7 ...
Unlocking rootfs ...
Writing from <stdin> to vmlinux.bin.l7 ...
Writing from <stdin> to rootfs ...
Appending jffs2 data from /tmp/sysupgrade.tgz to rootfs...
Updating FIS table...
Rebooting ...
br-lan: port 1(eth0) entering disabled state
device eth0 left promiscuous mode
br-lan: port 1(eth0) entering disabled state
Restarting system.
Architecture: MIPS
Vendor: Atheros
Bootloader: RedBoot
System-On-Chip: AR5312
CPU Speed: 220 MHz
Flash-Chip: Spansion S29JL064H90T
Flash size: 8MiB
RAM: 32MiB
Wireless: Atheros 802.11b/g/a (built-in)
Ethernet: 1x 100M
Serial: Yes


The signals of the built-in UART lines can be found on the expansion connector. The full pinout of the expansion connector can be found in the user guide of the device.

Serial pinout:
           |                   |                   |    |     SHIELD
           |                   |        CPU        |    |_____________
           |                   |___________________|                  
 7: 3.3V   |                                                          
41: GND    |                                                          
45: TX     |       49         _____________________________         1 
47: RX     |        o o o o o|o o o o o o o o o o o o o o o|o o o o o
           |        o o o o o|o o o o o o o o o o o o o o o|o o o o o
           |       50         -----------------------------         2

The UART lines are operating at TTL voltage levels, so if you want to connect it to your PC, you need a TTL-to-RS232 level shifter. See the Serial Console article for more informations.

The default network configuration is:

Interface Name Description Default configuration
br-lan eth0, wifi0 & wifi1
eth0 8P8C port None
eth1 Expansion connector None
wifi0 improperly detected in Backfire 10.03
wifi1 WiFi 2.4+5.0 GHz Disabled
This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies
  • Last modified: 2022/02/01 08:56
  • by librewrt