[ Webstats ] [ Forums ] [ Mailing lists ] [ Developers ]



Hosted by tuxfamily.org

FreeMAC overview

The goal of this project is to write a firmware for all Conexant wireless chipsets from scratch. The advantages are : Obviously, Conexant does not want us to do that with their chipsets, which are heavily covered by Non-Disclosure Agreements. So if this appeals to you, you are welcome to join the reverse engineering efforts :-)

Supported devices

FreeMAC intends to support all Prism54 devices. For now :


If you want to know how we did this, see FreeMAC History.

How to try and develop FreeMAC

First, you need to install the ARM toolchain as described here.
Then, take a snapshot of the SVN repository (you can also use svn co svn://svn.tuxfamily.org/svnroot/prism54/freemac), and compile it with the "gmake" command. This will produce the "freemac.arm" file, that you can use like any other firmware.
Now, you need to set up the device driver.


p54u is able to take care of FreeMAC firmwares since version 0.6.1. Install it the normal way, but before compiling it, edit driver/config.h and uncomment the line saying "#define WITH_FREEMAC".
Then, just use the freemac.arm file as a drop-in replacement of the SoftMAC one. p54u will automagically detect you are using FreeMAC.
You can then have the FreeMAC prompt with this command :
# p54term /dev/p54u0


Technical resources

Technical information about the chipset is available on the wiki, especially on this page and some (messy) reverse engineering notes are available here (general info) and here (radio specific).
You should also read the hardware register definitions in isl38xx_hardware.h.
If you want to "hunt" for hardware registers, I suggest you print out a copy of these documents. This makes assembler code reading and experimentations much easier.