Sunxi-tools

Prerequisites

 * libusb-1.0 (e.g. on a debian system do a apt-get install libusb-1.0-0-dev)
 * pkg-config

Building
If not stated otherwise: make

The ARM native pieces is not built by default and you need to explicitly name these when running make to have them built (see Makefile). These should be built with an ARM bare metal compiler. Some addititional compiler flags and linker scripts changes is needed to allow using gnueabi compilers.

Prebuilt ARM binaries can be found in bin/

bin2fex
compatibility shortcut to call 'fexc' to decompile a script.bin blob back into '.fex' format used by allwinner's SDK to configure the boards

fex2bin
compatibility shortcut to call 'fexc' to compile '.fex' file into the binary form used by the sun4i kernel

fexc
base program of the two aforementioned

bootinfo
Dump information from Allwinner boot files (boot0/boot1) --type=sd	include SD boot info --type=nand	include NAND boot info (not implemented)

fel
script interface for talking to the FEL USB handler built in to the CPU. You activate FEL mode by pushing the usboot/recovery button at poweron, by sending the character 2 to boot1, or by booting fel-sdboot from an sdcard.

fel-gpio
Simple wrapper around fel-pio and fel to allow GPIO manipulations via FEL

fel-pio
ARM native helper for fel-gpio

fel-sdboot
A small ARM native SD boot code which forces FEL mode, to make it easier to force FEL mode without having to press the recovery button at power on.

jtag-loop
A small ARM native SD boot code which sets PF (CARD0) to JTAG mode and then busy-waits for you to attach with JTAG.

usb-boot
Script for booting via USB (FEL)

phoenix-info
gives information about a phoenix SD image created by the phoenixcard utility and optionally extracts the embedded boot code & firmware file from their hidden partitions. Not usable for LiveSuit images.

pio
Manipulatee PIO settings (GPIO / pinmux config).

Can be used both on a file dump of the PIO registers for use by the fel-gpio script or natively on the device by direct mmap hardware acess.

nand-part
nand-part is a tool to repartition the internal NAND on sunxi devices. It should be (cross-)compiled for the device's architecture, and it requires the device to have a special kernel patch (already included in our kernel tree) to expose the full NAND as a block device.

Links

 * Fex Guide