Andrew Huang (Bunnie), an hardware engineer, known for hacking the original XBOX, and more recently for Novena open source laptop, has decided it could be interesting to reverse-engineer Mediatek MT6260 processor, as in China, it’s difficult to get documentation, SDK, and tools if you don’t commit to purchase X chips, where X is a rather large number. He and others also checked whether their work could be open sourced legally, and assert their “fair use” rights to reverse-engineer hardware and firmware. And so Fernvale project was born both as a technical challenge and to make a point.
MT6260 is a $3 ARM7EJ-S processor clocked at 364 MHz with 8MB built-in RAM, interfaces such as I2C, SPI, PWM, UART, as well as LCD and touchscheen controller, and audio codec, battery charger, USB, Bluetooth, and GSM support, which make the $6 Atmel MCU used in Arduino board look expensive. The main differences is that Atmel provides proper documentation to anyone who can click on a link, whether Mediatek would only talk if you can show them 6 or 7 figure cheques.
The hardware designed is comprised of three boards:
- Ferndale “Frond” mainboard – Features MT6260DA processor , a micro USB port, a micro SD card slot, and headers for UART, speakers, battery, as well as Bluetooth, and some “Arduino” GPIO pins.
- Ferndale “blade” UI breakout board with a SIM card slot, an LCD interface,a keypad, a headphone jack, and some expansions.
- Ferndale “spore” analog front end (AFE) board – GSM RF: PA + Tx/RX + Filters, and GSM antenna
That’s for the hardware, and Bunnie explained the hardware was the easy part, and they also had to work on reverse-engineering the firmware. They first work on the boot sequence (extracting the firmware required unsoldering the NAND flash), then build an interactive shell to run experiments on the target hardware, attached a debugger, ported NuttX RTOS to the platform, and developed a toolchain.
Currently only minimal set of hardware peripherals are currently supported, roughly matching functionality of the AVR MCUs used in Arduino boards. Bunnie and Xobs presented they finding at 31C3 with a paper called “Fernvale: A Reverse Engineered MT6260 Dev Platform“, and you can also find more on a long post on Bunnie Studios blog. The Wiki is where you’ll find the hardware files, and Femly boot environment.
As they developed Ferndale, Mediatek released LinkIt ONE, a development board based on MT2502A that offer some of the same features as the Bunnie & Xobs open source board, but is still relying on a close source RTOS (Nucleus OS), while if the project goes further an NuttX will be fully ported, and developers would be able to access the firmware.
Ferndale is not a board that you can purchase yet (if ever), but if you’d like to get involved, you can contact the developers on Kosagi forums.
Thanks to Nanik and Freire for the tip.