Allwinner Sun4i/5i/6i/7i/9i (sunxi)

Various vendors are offering development boards / single-board computer based on the Allwinner SoCs. These are running various flavors of the A1x, A20, A31, and soon H3 SoCs, with different buildouts. The mach is called “sunxi”.

For some specs rather see Allwinner_Technology#A-Series.

Model Version Launch Date OpenWrt Version Supported Model Specific Notes
A10 - CC/trunk Single Cortex-A8
A10s - CC/trunk Single Cortex-A8
A13 - CC/trunk Single Cortex-A8
A20 - CC/trunk Dual Cortex-A7
A23 - na Dual Cortex-A7
A31 - trunk Quad Cortex-A7
A33 - na Quad Cortex-A7
A64 - trunk Quad-core Cortex-A53
A80 - na 8-core big.LITTLE (4x A15 + 4x A7)
H3 - trunk Quad-core Cortex-A7
H5 - trunk Quad-core Cortex-A53
H8 - na 8-core Cortex-A7

See also Table of Hardware for supported devices and their basic technical data.

Model SoC RAM Storage Network USB Serial JTAG UEXT Other linux-sunxi page
BananaPi A20 1024MiB μSD Gigabit Ethernet 2x USB2 yes n/a n/a HDMI, SATA, audio, IR, RCA video out, CSI Page
BananaPi M2 Plus H3 1024MiB μSD, 8GB eMMC Gigabit Ethernet, Ampak AP6212 2x USB2, 1x USB OTG yes n/a n/a HDMI, IR, GPIO, CSI Page
BananaPro A20 1024MiB μSD Gigabit Ethernet, AP6181 BT+WLAN 2x USB2 yes n/a n/a HDMI, SATA, audio, IR, RCA video out, CSI Page
Cubieboard A10 1024MiB μSD, 4GB NAND Fast Ethernet 2x USB2 yes n/a yes HDMI, SATA, audio Page
Cubieboard2 A20 1024MiB μSD, 4GB NAND Fast Ethernet 2x USB2 yes n/a yes HDMI, SATA, audio Page
hummingbird A31 1024/2048MiB μSD, 8/16GB NAND BCM WiFi, Gigabit Ethernet 2x USB2 yes n/a n/a HDMI, audio, IR Page
Cubietruck A20 2048MiB μSD, 8GB NAND BCM WiFi, Gigabit Ethernet 2x USB2 yes n/a n/a HDMI, VGA, SATA, audio, IR, TOSlink Page
Lamobo R1 A20 1024MiB μSD RTL8192CU 802.11bgn 2T2R WiFi
BCM53125 Gigabit Ethernet switch with 5 ports
1x USB2 Host, 1x USB2 OTG yes n/a n/a HDMI, SATA, audio, IR, CSI Page
Olimex A10-OLinuXino-LIME A10 512MiB μSD Fast Ethernet 2x USB2 yes n/a yes HDMI, SATA Page
Olimex A13-OLinuXino-WIFI A13 512MiB μSD RTL WiFi 3x USB2 yes n/a yes VGA Page
Olimex A13-SOM A13 256/512MiB μSD, 4GB NAND RTL WiFi n/a yes n/a n/a n/a
Olimex A20-OLinuXino-MICRO A20 1024MiB SD, μSD, 4GB NAND Fast Ethernet 2x USB2 yes n/a yes HDMI, SATA, audio Page
Orange Pi Plus H3 1024MiB μSD Gigabit Ethernet 4x USB2 yes n/a n/a n/a Page
Orange Pi PC H3 512/1024MiB μSD Fast Ethernet 3x USB2 yes n/a n/a n/a Page
Orange Pi Zero H2+ 256/512MiB μSD Fast Ethernet, XR819 Wi-Fi 1x USB2 yes n/a n/a u.FL Page
Orange Pi Zero Plus H5 512MiB μSD Gigabit Ethernet, RTL8189FTV (WiFi Unsupported) 1x USB2 yes n/a n/a u.FL Page
pcDuino/pcDuinoV2 A10 1024MiB μSD, 2GB NAND Fast Ethernet 2x USB2 yes n/a n/a HDMI / Arduino headers Page
pcDuino3 A20 1024MiB μSD, 4GB NAND Fast Ethernet, RTL8188EU WiFi 1x USB2 yes n/a n/a HDMI / Arduino headers, SATA, IR Page
pcDuino8 / Arches A80 2048MiB μSD, 8GB NAND BCM WiFi (AMPAK 6330), Gigabit Ethernet 2x USB2 yes n/a n/a HDMI / IR Page
Pine64 / PINE A64 A64 512MiB μSD Fast Ethernet 2x USB2 yes n/a n/a HDMI / Audio / GPIO Page
Pine64 / PINE A64+ A64 1024/2048MiB μSD Gigabit Ethernet 2x USB2 yes n/a n/a HDMI / Audio / GPIO Page

UEXT is an open standard port to provide serial, I²C and SPI expansion ports.

Patches have been back-ported from the http://linux-sunxi.org/ community, including device trees, clocks, timers, PIO, ethernet, USB, and, MMC. These patches are being mainlined as they come online by the community.

  • SPL: done
  • u-boot: done
  • kernel: done
  • rootfs: done

You have the option to boot the board from initramfs, SD card (recommended), USB storage, or NFS.

  • SD/MMC
  • USB EHCI/OHCI
  • EMAC (A10 10/100 Mbps)
  • GMAC (A20 and above, 10/100/1000 Mbps)
  • SATA
  • Clocks
  • Timers
  • SMP with HYP patches for A20
  • Various devices, GPIO, IR
  • NAND (have some snippets already)
  • Audio
  • SPI (need integration)

This section details what is required to install and upgrade OpenWrt. The generic procedure is described here: generic.flashing; these devices don't have a flash chip soldered to the PCB but an SD-Card slot.

Outdated Information!
This article contains information that is outdated or no longer valid. You can edit this page to update it.

You can build an SD card image directly from buildroot for your device.

  • Run make menuconfig
  • Select device profile - f.e. BananaPi
  • Start the build
  • The built SD card images will be in bin/sunxi
  • dd if=bin/sunxi/openwrt-sunxi-Bananapi-sdcard-vfat-ext4.img of=/dev/sdc

OpenWrt CC trunk images are located in snapshots/trunk/sunxi/ folder.

For example if you have Cubieboard3/Cubietruck then download these files from the server:

SD layout with 512 byte blocks:

NAME start block size
MBR 0 1 block
u-boot-with-spl.bin 16 (8 KB) ~250 KB
FAT 2048 (1 MB) 15 MB
EXT4 32768 (16 MB) rest

We assume /dev/mmcblk0 is the SD card and Cubietruck is the board.

  • Partition the SD card. Two partitions are created. The first is the boot partition, /dev/mmcblk0p1. The second is the root partition, /dev/mmcblk0p2.
    # fdisk /dev/mmcblk0
    
    Command (m for help): n
    Partition type:
       p   primary (0 primary, 0 extended, 4 free)
       e   extended
    Select (default p): p
    Partition number (1-4, default 1): 1
    First sector (2048-15523839, default 2048): 2048
    Last sector, +sectors or +size{K,M,G} (2048-15523839, default 15523839): +15M 
    
    Command (m for help): n
    Partition type:
       p   primary (1 primary, 0 extended, 3 free)
       e   extended
    Select (default p): p    
    Partition number (1-4, default 2): 2
    First sector (32768-15523839, default 32768): 32768
    Last sector, +sectors or +size{K,M,G} (32768-15523839, default 15523839): +240M
    
    Command (m for help): p
    
    Disk /dev/mmcblk0: 7948 MB, 7948206080 bytes
    4 heads, 16 sectors/track, 242560 cylinders, total 15523840 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x17002d14
    
            Device Boot      Start         End      Blocks   Id  System
    /dev/mmcblk0p1            2048       32767       15360   83  Linux
    /dev/mmcblk0p2           32768      524287      245760   83  Linux
    
    Command (m for help): w
    The partition table has been altered!
    
    Calling ioctl() to re-read partition table.
  • Re-read the new partition table layout (e.g. by removing and re-inserting the SD card).
  • Copy the SPL + U-boot image to the card
    # dd if=bin/sunxi/uboot-sunxi-Cubietruck/openwrt-sunxi-Cubietruck-u-boot-with-spl.bin of=/dev/mmcblk0 bs=1024 seek=8
  • Create a boot (FAT32) partition.
    # mkfs.vfat /dev/mmcblk0p1
  • Mount the boot partition.
    # mount -t vfat /dev/mmcblk0p1 /mnt
  • Copy the U-Boot environment file uEnv.txt to the boot partition.
    # cp bin/sunxi/uboot-sunxi-Cubietruck/openwrt-sunxi-Cubietruck-uEnv.txt /mnt/uEnv.txt
  • Copy the boot.scr containing needed uboot commands for loading, setting kernel parameters and booting to the boot partition.
    # cp bin/sunxi/sun7i-a20-cubietruck.scr /mnt/boot.scr
  • Copy the device tree data to the boot partition.
    # cp bin/sunxi/sun7i-a20-cubietruck.dtb /mnt/dtb
  • Copy the kernel image to the boot partition.
    # cp bin/sunxi/openwrt-sunxi-uImage /mnt/uImage
  • Resize the root filesystem image to match the partition size.
    # resize2fs bin/sunxi/openwrt-sunxi-root.ext4 240M
  • Create the root filesystem.
    # dd if=bin/sunxi/openwrt-sunxi-root.ext4 of=/dev/mmcblk0p2 bs=128k
  • Wrap up (flush buffers and unmount boot partition).
    # sync
    # umount /mnt

generic.sysupgrade

sysupgrade works out of the box, using (at least) the ext4-sdcard.img.gz files.

For further information about the SoCs, go to http://linux-sunxi.org/Main_Page

List of related devices:

This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies
  • Last modified: 2024/02/12 11:43
  • by 127.0.0.1