My affair with Allwinner SOCs started when I saw this article online http://www.cnx-software.com/2012/04/04/mele-a2000-android-2-3-media-player-powered-by-allwinner-a10/ 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.
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
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.
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.
#!/bin/sh ./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 fi if [ "`./fel ver | grep A13`" ] ; then echo Uploading sun5i-a10s-bootsetup.dtb ./fel write 0x43000000 sun5i-a10s-bootsetup.dtb fi 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 fi 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 fi 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!