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

video

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)

maniline

 

 

A20-CAN – new OSHW board designed with KiCAD adds CAN networking to A20-OLinuXino and A20-SOM

A20-CAN

Want to sniff your car’s CAN bus or to drive Industrial machines with CAN networking bus?

Allwinner A20 SOCs have CAN but almost no one use it. If I remember correctly it was not even included in the Allwinner documentation just two pins had CAN on their names, so many people doubt if there is or not CAN.

Fortunately some people investigated further and add proper CAN support for A20 Linux, so we decided to make small driver board which to allow A20-OLinuXino and A20-SOM to have CAN. What does this means? Now you can use A20-OLinuXino to talk to other devices with CAN like industrial equipment, automotive CAN bus etc etc.

Current Linux image we have is without CAN support, but we put instructions on our WiKi how to build one with Linux-Sunxi 3.4 Kernel and with Mainline kernel: https://www.olimex.com/wiki/A20-CAN

What you see above on the picture is our first prototype of A20-CAN it works well although we use 5V CAN driver and A20 is 3.3V device. We successfully connected AM3352-SOM-EVB to A20-OLinuXino-LIME with A20-CAN driver and exchanged some messages at the highest speed 1Mbit and it works fine.

All CAD files, Gerbers, BOM are in this Github account: https://github.com/OLIMEX/A20-CAN . The board is done with KiCAD.

The PCBs are now in production and in 2 weeks A20-CAN will be orderable on our web page . While the PCBs are made we will work to add the CAN in our official images, so you do not have to bother with Kernels configurations and re-compiling.

How to root any Allwinner device running Android and most of the Chinese “Pi” clones which bet on Allwinner Android Linux Kernel

3

I got this interesting Tweet this morning from Ken Tindell @kentindell

I decided to check what is this about and expand the message … then LMAO!

1

David Manouchehri ‏@DaveManouchehri found interesting code in the Allwinner GitHub https://github.com/allwinner-zh/linux-3.4-sunxi

What does this means? If string “rootmydevice” pass through sunxi_debug process it assigns you root privileges.

My first though was who the hell will use the original extracted from Android Linux Kernel 3.4 made by Allwinner which contains binary blobs, when there is completely Free Open Source alternative developed by Linux-Sunxi community?

…and while thinking on it, scrolling down I found this:

2

some guy decided to try it on his Orange Pi – you see the result, he got root access to the device by simple echo command!

Damn! and this is put with non-conditional flags i.e. embedded always in the kernel you can’t remove it!

If the guys from Allwinner were smart enough they would at least hide this in the binary blobs, so no one could see it!

This is just yet another example what you are exposed to when use kernels which are with binary blobs inside, not speaking of the security quality of the code which Allwinner developers produce!

Fortunately we use Linux-Sunxi community kernel which is 100% open source and no binary blobs!

(well if you want hardware acceleration GPU drivers are still with binary blobs and no one knows what is inside, but this looks like heap of works and no one is interested to liberate them so far).

here is what OLinuXino Kernel responds on the same command:

4

What does this means? All devices which run Allwinner Linux Kernel 3.4 are subject to this backdoor security flaw and you can easily gain root access on any on them!

A64-OLinuXino 64-bit ARM OSHW designed completely with KiCAD is live!

А64-1cut

A64-2cut

This is the first prototype of A64-OLinuXino. The first complex board we made completely with KiCAD.

You can see on the picture above the full configuration with 1GB RAM (2GB is possible) and 4GB fast SLC eMMC Flash, with WiFi+BLE4.0 module.

It was a while until we found free window to run it on the assembly line, but this week we succeed.

Android is build and run from the Allwinner SDK, Dimitar Gamishev managed to make some quick and dirty Linux image, based on Allwinner uboot and kernel, but things are far from complete.

The good news is that A64-OLinuXino boots fine, here is meminfo and cpuinfo.

The bottom line – KiCAD is tested and can produce working complex boards with controlled impedance.

 

A64-OLinuXino routing completed, but we still have to final touch this and that

A64-OLinuXino

What you see above is the completely routed A64-OLinuXino! Files are push to GitHub as usual.

Now is time to re-check everything and final touch this and that before run the first prototypes.

One issue which we still have not addressed is the dual power supply for MMC card which to allow maximal performance.

We saw there are already patches on Linux-Sunxi for adding this but I do wonder if anyone has try it and if there are already boards with this feature.

There is no problem to add 1.8V and 3.3V mux-ed power supply to MMC card, but which GPIOs to use to enable/disable these?

Any suggestions are welcome!

A64-OLinuXino update

А64

We just got some more information from Allwinner for A64 and the good news is that it have Gigabit Ethernet interface!

So beside the WiFi + BT 4.0 A64-OLinuXino will have also native Gigabit Ethernet interface 🙂

Android scripts for OLinuXino

Android-bot

The Android images for our OLinuXino boards are not the stock images with the Allwinner SDK, some small things were changed to add support for our WiFi modules etc. We wanted to publish the sources for a very long time, but the files are 6 GB for each board and this is not easy to store and serve.

Now the configs are on GitHub with links to the Allwinner stock SDK sources so if you want to build your own Android image you have these as templates.

Allwinner did it again – New quad core powerful chip pin to pin compatible with A10 and A20!

A20-OLinuXino-LIME2-1

A10 was one of most successful chips made by Allwinner, for couple of years it was top seller in tablets and other devices, A10 also was selected for our EUR 30 low cost Linux board the LIME.

Then Cortex-A8 single core become obsolete, then Allwinner released A20 – Dual Core more powerful and power efficient Cortex-A7 processor with pin to pin backward compatibility to A10.

This was incredible wise move for Allwinner as people could just re-use their old PCB designs without spending time to change PCBs.

A10/A20 had one nice feature – they have LCD, HDMI, SATA, Ethernet, in A20 Allwinner even add Gigabit Ethernet on top of the normal 100M Ethernet. All other new devices they release have either LCD either HDMI but not both and we miss SATA interface in all new Quad core devices they released.

Now they did it again – we got information from Allwinner that they are about to release Quad core more powerful processor which to be pin to pin compatible with A10/A20 we still don’t know the name, maybe A40 ? 🙂

Anyway this is very clever move as all existing designs which people have can be re-used. This means more modern SoC with more power but without forcing you to re-design your boards.

So expect Quad core LIME soon and I guess at same price range like other LIMEs!

A64 the first Cortex-A53 chip from Allwinner is now in production and cost only $5 in volume

A64

In January 2015 Allwinner announced that start working on their Cortex-A53 chip with name A64. Today we got notice that A64 now is in production and ready for ordering.

A64 target is tablets, it have quad core Cortex-A53 inside, with Mali400MP2 GPU, supports MIPI, RGB, LVDS, HDMI with 4K output. The video engine supports H.264 and H.265 encoding and decoding, Audio codec and 5Mpix camera sensor.

The connectivity is weak – no native Ethernet, but just USB-OTG and USB-Host, SPI, I2C, UARTs and LRADC.

The price is again smashing $5 for the A64 SoC probably this is the lowest cost Quad Core Cortex-A53 chip on the market.

A64 comes in small sexy 13×13 mm BGA443 package with 0.5 mm step which makes PCB escape a little bit expensive and minimum 6 Layer PCB design with quite demanding technology.

How to get in the News? Tell people that you will make and sell something which cost you $20 for $9!

photo-original

Probably everybody heard for the next big thing after Raspberry Pi – the C.H.I.P. computer which sells for only $9.

What?? Single board computer with 512MB RAM and 4/8GB Flash and WiFi for only $9?

When Raspberry Pi foundation advertised they will make Linux computer for $25 very few believed this is possible, then after some time hitting rocks on the road they made partnership with Farnell and RS and made this happen. Actually lot of Android TV sticks in this price range were available so the technology was there just nobody from Western world had explored it.

The Rpi got quite successful, so lot of companies followed in the aim to make the next better Raspberry Pi (we at Olimex also 🙂 went to this route with OLinuXino OSHW Linux computers fixing the fact that RPi is closed source design).

The $35 was the magic number if you come close to it more chances to attract people you have.

Then few weeks ago there was the next big thing – computer with the specs of Raspberry Pi for only $9 on Kickstarter.

This blew people’s mind – they start fantasies like how Allwinner produce 1Ghz SOCs for $1 like on this thread on G+.

These guys plan was set for sale of 5000 computers, we purchased more than 150K SoCs chips from Allwinner last year alone and I know the DDR and Flash memory market, so I was quite skeptical this $9 is achievable even for the Bill of Materials not for sale price.

I asked Allwinner for quote and got $4.80/5K order (which is the original Kickstarter goal of Next Thing Co. guys). I assumed this price is for the module they use with the 512MB RAM and 4GB Flash (despite just the DDR and Flash exchange market price is higher than this number, well I hoped Allwinner manufacturing this module have some magic prices not applicable for mortals with the million of units they sell :).

Today I got datasheet of R8M and price of it is $16 including the PMU. Whaaat? Just the module is $16 but these guys sell this module on board with connectors and WIFI for $9 how this is possible?

I asked Allwinner again if there is mistake and they confirmed there is no mistake, R8 price is $4.80, R8M module price $16. Allwinner confirmed R8 just SOC cost $4.80 but this makes not much sense either this is the price of A33 quad core SOC why they price so expensive obsolete A13 Cortex-A8 SOC???

On my question how then Next Thing Co. sell this computer for $9 Allwinner response is:

“CHIP 9$ computer launched a big advertising campaign to promote their new development board, their actual cost is higher than 9$. After the Kickstarter their computer will sell for 39$.”

So, sorry guys to break your dreams for 1Ghz SOCs costing $1, maybe in future this would be possible, but not now.

The C.H.I.P. is just CHEAP marketing. At least for me R8 is not interesting at this price, better use A33 Quad core or H3 for your next design they are in same price range.

EDIT Update 08-06-2015: On the question why R8 cost is same as for quad core processor the response from Allwinner is:

R8 is new IC just published especially on IoT, it is not like A33 this one had used on a large scale forTablet PC.

So R8 is more expensive as produced in lower quantities than A33 which is selling for tablets in big volumes.

Previous Older Entries Next Newer Entries