Jump to navigation Jump to search

My affair with Allwinner SOCs started when I saw this article online and noticed the chatter on the XBMC forums. I'd given up waiting for my invite to purchase a Raspberry PI and headed to Tom's Cubie Hacker shop. A month later I had my A2000. After the initial excitement the unit ended up gathering dust behind my TV. I'd learnt to live with my noisey HTPC setup and as an OpenElec user, I realised that there would be alot of effort required. I tinkered when I could and kept an eye on the scene.

SUNXI hardware that I have

Mele A2000 - main development machine with serial debugging attached. SDcard/Netbooting and have the following setups.

  • community uboot with stage/sunxi-3.4 build and builds based on that branch with my current undelivered patches. Operating system is Debian which includes XBMC which I built using the instructions here.
  • OpenWRT - only a few changes are required to the build system to get this building for the Mele. Wireless modules loading, scanning but not connecting to my network.
  • Mainline u-boot with my current audio mainlining attempts. The Operating system on this card the same as above and also OpenWRT.

Rikomagic MK802+ - Serial debug pads on this board have lifted but thanks to Luc's simple frame buffer I'm now able to use this for mainline work. Have linux-next with wifi working on this device. Next task is to check that the audio codec can record from the microphone.

  • Have in the past used Hans' Fedora 19 build with this. Works extremely well considering the hardware.

Ippo Q8H - Recently bought tablet, feels cheap but works very well. Cables soldered on to the suspected serial points but currently no chatter is coming from them.

MK808C - A20 hardware that comes in the MK808B casing and packaging. To identify that it's a MK808C there is a small sticker on the side of the packaging which I didn't see until after firing off an email to the seller. Have delivered the necessary changes to get this working with the 3.4 kernel.

  • Currently using my Debian build with XBMC, wireless module working not tried bluetooth. Have also got mainline working on this device with the staging 8792AU drivers that are currently in the kernel. Will look at get bluetooth working next.

MeLE I7 - A31 Android TV Box similar in look to the A2000. Now booting through FEL.

VidOn box - Although I've been able to extract the fex from the update file; I've not been able to work with this. Can log via serial but that is about it. Not been able to get the device into fel mode.

Orange PI 2 - Requires an sdcard with the Android image written with PheonixCard to do anything with the device. Can go into fel mode but sunxi-tools needs updating to support it. I've been able to extract the [fex] from the sdcard image. WIP.

Olimex A20 SOM with EVB - WIP

Olimex A13 OlinuXino Micro - WIP

Olimex A10s OlinuXino Micro with 4GB NAND - WIP

What I'm working on

  • Audio Drivers - I'm trying to tidy up the audio drivers so that I can get my mindset into doing some mainlining on them. Current status for 3.4 kernel: stripped away most of the sunxi-hdmiaudio code and have tested successfully, SPDIF cleaned up and ready for testing, other drivers tidied up and considerations made for bringing in A23 features. Major refactoring required on my patch ordering.
  • Mainlining - started more focus on this for the devices that I have. Will target OpenWRT as a testing platform.

Success Stories

I've worked my way through a lot of the instructions on the wiki pages and here is a list of what I've succeeded with.

  • FEL Booting. Prerequisites: u-boot-next, linux-next, initramfs - fel instructions recommend miniroot but I've failed in building this. For now I've used openwrt and set it to target allwinner with CONFIG_TARGET_ROOTFS_INITRAMFS=y and CONFIG_TARGET_ROOTFS_CPIOGZ=y.
./fel spl /tmp/Hacking/u-boot-next/u-boot-sunxi-with-spl.bin

./fel write 0x4a000000 /tmp/Hacking/u-boot-next/u-boot.bin

echo Uploading kernel
./fel -v write 0x42000000 /tmp/Hacking/linux/arch/arm/boot/uImage 

echo Uploading initramfs
mkimage -A arm -T ramdisk -C none -n uInitrd -d /tmp/Hacking/openwrt/bin/sunxi/openwrt-sunxi-rootfs.cpio.gz rootfs.uboot
./fel -v write 0x43300000 rootfs.uboot

if [ "`./fel ver | grep A10`" ] ; then
	echo Uploading sun4i-a10-bootsetup.dtb
	./fel write 0x43000000 sun4i-a10-bootsetup.dtb

if [ "`./fel ver | grep A13`" ] ; then
	echo Uploading sun5i-a10s-bootsetup.dtb
	./fel write 0x43000000 sun5i-a10s-bootsetup.dtb

if [ "`./fel ver | grep A20`" ] ; then
	echo Uploading sun7i-a20-bootsetup.dtb
	./fel write 0x43000000 /tmp/Hacking/linux/arch/arm/boot/dts/sun7i-a20-mk808c.dtb

if [ "`./fel ver | grep A31`" ] ; then
	echo Uploading sun6i-a31-bootsetup.dtb
	./fel write 0x43000000 /tmp/Hacking/linux/arch/arm/boot/dts/sun6i-a31-i7.dtb
mkimage -C none -A arm -T script -d boot.cmd boot.scr
./fel write 0x43100000 boot.scr

./fel exe 0x4a000000

boot.cmd is as follows

setenv bootargs console=ttyS0,115200 root=/dev/mmcblk0p1 consoleblank=0
bootm 0x42000000 0x43300000 0x43000000

Things that I've not completed yet(but have started)

This page for starters!