OLinuXino EEPROM content – one step ahead to single Linux image for all A20 boards


We are struggling for some time now to make one single image which to work on all A20 boards we have.

Our problem is that we have more than 20 different A20 boards/revisions/ etc and every time we have to add or improve something we have to generate and test enormous amount of images.

It’s not so easy task as this image should run on different boards with differnt memory speed etc settings, different ports connections etc.

To achieve one single image which to boot to all A20 boards our first step is to add some content in the EEPROM which all OLinuXino has.

The EEPROM now contain this info: Header, ID, Revision, Serial number, Configuration, Reserved area for future (MAC etc), Checkcum.

The new image we work on now (based on Armbian with mainline kernel) will automatically recognize the board from the EEPROM content and run.

What will happen if no valid EEPROM content is read (i.e. old boards), there is tool which to be used to write EEPROM content based on board revision.

We are going to release this image soon.


New Product in stock MOD-WIFI-AR9271 libre drivers and firmware WiFi dongle


AR9721 chipset is the only one on the market with completely open source linux drivers and firmware, this make it WiFi chipset of choice for people who respect their freedom.

We have MOD-WIFI-AR9721-ANT for quite some time and it’s very popular item, but the 200mm antenna make it not quite small. Now we add to our web shop the version without external antenna. It’s with 85 x 25 x 10 mm dimension and have same working distance as the external antenna version.

GNU/Linux Install fest in Plovdiv @ Olimex on December 10th


We will host for a first time GNU/Linux install fest.

If you have problem with some device or driver or don’t know how to tweak your Linux distribution, or just want to chat with other people who use Linux – come to us on December 10th, 11.00-14.30 o’clock and meet Linux experts who will participate this event and get free advice and help.

Where to find us? Here is Google Maps Olimex Ltd location. And here is picture of the map, the green dot is the Olimex Training building where the GNU/Linux install fest will take place:



Looking forward to meet you there.

Here is the link of the event in Facebook.

Final updates on A64-OLinuXino GMAC and eMMC, we are ready to launch production


We complete our test with Rev.B

Good news is that Gigabit interface works well with Micrel/Microchip PHY and result is real Gigabit bandwidth. A20 although having Gigabit interface can’t make more than 700 Mbit I guess this is related to A20 capability to handle the data from GMAC. With A64 the speed is  932Mbit i.e. very close to 1Gb:

root@A64-OLinuXino:~# iperf -s 
 Server listening on TCP port 5001 
 TCP window size: 85.3 KByte (default) 
 [  4] local port 5001 connected with port 41144 
 [ ID] Interval       Transfer     Bandwidth 
 [  4]  0.0-10.0 sec  1.09 GBytes   932 Mbits/sec


For eMMC we followed the advice to make it dual voltage 3.3V and 1.8V with aim to have faster transfers and we implemented it in the hardware, but the tests show that transfer is same even at 1.8V is a bit lower. I don’t know if this is due to lame software settings we do in the eMMC drivers, or just the eMMC we use have same transfer on both voltages (we check datasheet and the eMMC we use have same speed quoted on both voltages), so this may be useless for our eMMC chip:

eMMC clock: 52 Mhz

root@A64-OLinuXino:/home/olimex# dd if=/dev/zero of=/mnt/output conv=fdatasync bs=384k count=1k; rm -f /mnt/output 
1024+0 records in 
1024+0 records out 
402653184 bytes (403 MB, 384 MiB) copied, 33.0437 s, 12.2 MB/s 
root@A64-OLinuXino:/home/olimex# dd if=/dev/zero of=/mnt/output conv=fdatasync bs=384k count=1k; rm -f /mnt/output 
1024+0 records in 
1024+0 records out 
402653184 bytes (403 MB, 384 MiB) copied, 37.9408 s, 10.6 MB/s 
SDMMC clock: 40MHz 
root@A64-OLinuXino:/home/olimex# dd if=/dev/zero of=/tmp/output conv=fdatasync bs=384k count=1k; rm -f /tmp/output 
1024+0 records in 
1024+0 records out 
402653184 bytes (403 MB, 384 MiB) copied, 41.1578 s, 9.8 MB/s 

With SDMMC as we don’t know what SD card will be inserted the clock is set to default 40Mhz.

After re-checking that everything works, we make last cosmetic changes to audio part we noticed in the last moment and will run Rev.C in production.

Free Electrons add mainline Linux kernel support for the A13 Allwinner VPU


Posted today on Free Electrons blog.

19 years old intern in Free Electrons took the Cedrus reverse engineering of Allwinners proprietary CedarX video driver who is around since mid 2014 and made patches for mainline Linux kernel.

I’m sure we use these since they were made first available and they are build in our images, so I’m really puzzled why they have made their way to mainline just now and not earlier?

Isn’t it time Linux-Sunxi community to stop working on kernel fork and start to send all development and patches upstream like Rockchip developers do already for 2 years?

Looking at mainline kernel Rockchip has way better support now than Allwinner although Linux-Sunxi community to seem many times bigger than Rockchip community.

Rockchip devices are in many Chromebooks and Google push them to send all their work upstream to latest kernels.

None of newer Allwinner chips found it’s place in Chromebooks and this is the problem, for Android kernel 3.10 is enough and they will not move from it, neither they learn (or are capable to generate quality code) to upstream all work they do.

This is pitty as since A10/A20 we can’t see anything which to beat Rockchip as productivity.

RK3288 is mainline and although Cortex-A17 still faster than any chip Allwinner have.

Now Rockchip work to release their new super duper RK3399 (2x Cortex-A72 and 4x Cortex-A53) and again they upstream code before even selling the chip.

With two USB3 hosts this chip is good candidate for next OLinuXino 🙂


EDIT1: after the posting there were interesting comments from  Chen-Yu Tsai (a.k.a. wens213) who point me that what Free Electrons did is not simple commit to already existing project but did from scratch v4l2 mem-2-mem codec driver! So I appologise for the underestimated efforts!

EDIT2: I admit that what I wrote about Linux-Sunxi repository was about Kernel 3.4 which I was using two years ago and which was developed “wild west” style. I was assuming as the repositories are still there this continues, but I was wrong!

Our boards are with A10/A13/A20 and have mainline support, so I didn’t followed closely what happens with Linux-Sunxi lately.

Chen-Yu and Siarhei explained that this repo is kept there for historical reasons and now all development is focused to upstream too! Good to know 🙂

At Linux-Sunxi there is very clear table about what is done ( light green) and on what is working (ornge)




Microsoft with keynote speak on LinuxCon – if you can’t beat them join them?


news from Phoronix

No, you read it correct there is no mistake. This year Microsoft has keynote speak at LinuxCon in Toronto 🙂

As per their Azure blog they are going to share Microsoft’s open source developments there.

I guess this is part of Microsoft activity to appear as more open source friendly company trying to break in the open source enthusiasts market?

None is using Windows on small embedded SBC where Linux and Android is dominating and they try to make their path there?

As part of this recently Microsoft ported their power shell to Linux, pretty useless effort IMO who Linux user would switch from Bash to power shell?

New Sitara AM3352-SOM-IND with industrial grade components work from -40C up to +85C


Our popular AM3352-SOM module now is available in industrial temperature grade -40+85C under name AM3352-SOM-IND.

MT41K256M16HA-125IT:E memory used is with -40+95C operating temperature.

AM3352BZCZA100 processor used from Texas Instruments  is with -40+105C operating temperature.

AM3352-SOM-IND module can be evaluated with AM3352-SOM-EVB.

Debian Linux distribution is officially distributed, but recent patch add support for AM3352-SOM in Beaglebone kernel

Previous Older Entries