AllWinner A80 Linux SDK Released

After Android 4.4 SDK for AllWinner A31 last week, another AllWinner software development kit has been seen in the wild, this time for the new AllWinner A80 octa-core processor. A80 SDK includes source code for the Linux Kernel and U-boot, as well as buildroot, and various AllWinner tools. I’ve also noticed AllWinner A80 datasheet is available, but with the strict minimum information (45 pages).

AllWinner_A80_SDK

Let’s get the code, and extract it:


Now we need to configure the build:


sun9i is the codename for AllWinner A80, not sure what w1p1 means. Dragonboard must be the internal Allwinner development board, but I just selected Linux, since the SDK does not come with Android, and finally I opted for optimus, which could stand for OptimusBoard.

You may need to install extra dependencies in your build machine, for example (in Ubuntu 14.04):


Now let’s start buildroot which should retrieve the toolchain, and build u-boot and the Linux kernel:



So it’s looking for Linaro gcc via several servers, (except linaro), and all links fail… So I modified buildroot/toolchain/toolchain-external/ext-tool.mk to use http://releases.linaro.org/14.04/components/toolchain/binaries/gcc-linaro-arm-linux-gnueabihf-4.8-2014.04_linux.tar.bz2 instead, and after adding some symlinks (arm-linux-gnueabi-gcc to arm-linux-gnueabihf-gcc), it went a little further, but Busybox failed to build (error: ‘RLIMIT_FSIZE’ undeclared), so another toolchain may be needed, or some work is needed to make it build…

Several drivers in the kernel are binary only, or mixed binary / source, including the NAND driver, part of dram frequency scaling drivers, some MIPI code, a face detection library, part of USB3.0 code, and more.

Share this:

Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress

ROCK Pi 4C Plus
Subscribe
Notify of
guest
The comment form collects your name, email and content to allow us keep track of the comments placed on the website. Please read and accept our website Terms and Privacy Policy to post a comment.
18 Comments
oldest
newest
Jon Smirl
9 years ago

45 pages is a normal datasheet. The big ones are the reference manuals. Is the reference manual hiding inside the A80 SDK?

m][sko
9 years ago

GPU user space drivers and VPU cedar lib
are in buildroot

no OpenMAX or OpenCL

haze
haze
9 years ago

I search schematic of allwinner A80 board, who that?

Harley
Harley
9 years ago

http://libv.livejournal.com This blog post by Luc Verhaegen pretty much says it all

mat
mat
9 years ago

Instead of reading Verhaegen about non-binary dreams…. I’m still waiting for a SoC with 3 features: -decent speed and hevc decoding -decent linux GLES (even binary … no frequent crashes) -decent VPU drivers (even binary…. no crashes and no pink screens) Being A10 owner I can say vpu under linux is trashy if you ever use 264, cedar libhybris and any other. AMLogic S80x still no hevc and other issues (also linux unsupported by anyone?!?). Tegra K1 good all but no hevc (no, OpenCL never gave 264 decent speed to i3/i5/i7, just 7% faster codecs with unstable code). RK3288 no… Read more »

svartalf
9 years ago

OpenMAX and OpenCL being lacking is disappointing.

svartalf
9 years ago

Build problems look like they’re bugs from the Buildroot perspective- there’s a patch from 2012 that appears to be the proper fix. I’m checking that out now to see if it’s the source of the problems.

svartalf
9 years ago

Epic. FAIL.

(From the buildroot dir)
2011.02, Released February 28th, 2011:

No wonder the thing doesn’t build, Jean-Luc. It’s using an *ANCIENT*, *BROKEN* buildroot. The only way they’re getting this to work is that the downloads it’s looking for on Linaro’s site are local to the dev’s buildroot dir on their machine.

svartalf
9 years ago


Heh… We need techrefs from AllWinner here. This is a mess and isn’t acceptable. I suppose if I have a board, I could make a more modern kernel work for a more modern buildroot and OpenEmbedded. Without it, it’d be a lot of work without any real payback for me.

Kevin125
9 years ago

but Busybox failed to build (error: ‘RLIMIT_FSIZE’ undeclared)

Just add one include path in system/core/init/init.c

#include

miniNodes
9 years ago

We started building this today, but have met problems as well.

– Thanks for the info, excellent info to get started.

@Kevin125 – Thanks for that tip, I was able to proceed with Busybox. However, building still fails further down the line in Busybox.

Last few lines of output:

/A80_SDK_20140728/lichee/out/sun9iw1p1/linux/common/buildroot/external-toolchain/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/bin/ld: failed to merge target specific data of file libbb/lib.a(perror_nomsg.o)
/A80_SDK_20140728/lichee/out/sun9iw1p1/linux/common/buildroot/external-toolchain/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/bin/ld: error: busybox_unstripped uses VFP register arguments, libpwdgrp/lib.a(uidgid_get.o) does not
/A80_SDK_20140728/lichee/out/sun9iw1p1/linux/common/buildroot/external-toolchain/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/bin/ld: failed to merge target specific data of file libpwdgrp/lib.a(uidgid_get.o)
collect2: error: ld returned 1 exit status
make[1]: *** [busybox_unstripped] Error 1

miniNodes
9 years ago


But hey, Android works great. =)

Correct though, we have had the board for a few weeks (prior to the SDK), but were awaiting assistance from Merrii to provide a working Linux.

Now with the SDK released, we could theoretically take matters in to our own hands…If it worked!

Sergio
Sergio
9 years ago

For miniNodes.

Hi!
I’ve read your instruction for building http://www.mininodes.com/how-to-build-linux-for-the-allwinner-a80-optimusboard/
and tried to make all you’ve wrote.
I’ve repeated it twice! But I’ve had an error exectly the same place all the times…
After this step:
Edit Line 456, and change ‘gets’ to ‘fgets’
I had an error
/usr/bin/gcc -c -I. -I/home/adminuser/SRC/lichee/out/sun9iw1p1/linux/common/buildroot/build/kernel-header/linux-2.6.36-android/include output_file.c
output_file.c:25:18: fatal error: zlib.h: No such file or directory
#include
And no future steps havn’t improove it…
By the way, the PATH …/kernel-header/linux-2.6.36-android/include doesn’t exist.
Even …/build/kernel-header/ doesn’t exist!
What I did wrong?

Khadas VIM4 SBC