Sunxi-tools
Contents |
Building
Prerequisites
libusb-1.0
debian/ubuntu
apt-get install libusb-1.0-0-dev
fedora
yum install libusbx-devel
pkg-config
Repository
git clone https://github.com/linux-sunxi/sunxi-tools
Building
Those programs that need to run on the host will be built when you run:
make
The programs meant for the device, are not built per default, and you need to name them explicitly.
When you are using a cross-compiling toolchain (make sure it is added to your PATH), you need to build individual programs like so:
make CROSS_COMPILE=arm-linux-gnueabihf- meminfo
Since all these tools are tiny, you can just as well build these on the target device as well.
sunxi-fexc and wrappers
sunxi-fexc is a small program to convert between FEX and its binary representation, back and forth. It comes with two shortcuts (symbolic links) for easier invocation.
sunxi-fexc
Usage: ./sunxi-fexc [-vq] [-I <infmt>] [-O <outfmt>] [<input> [<output>]] infmt: fex, bin (default:fex) outfmt: fex, bin, uboot (default:bin)
When no arguments are provided, it waits on stdin. Similar, when no <output> is provided, it will dump to stdout. This is great for piping, but might mess up your terminal (type reset to have your terminal reset and make sense again).
bin2fex
This is a copy of sunxi-fexc which takes a script.bin and dumps the .fex text.
fex2bin
This is a copy of sunxi-fexc which takes the .fex text file and dumps the binary.
sunxi-pio
Manipulate 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.
sunxi-fel and helpers
FEL is a means of talking to the Allwinner SoCs BROM over USB. You first need to activate FEL mode on your device to be able to access it.
sunxi-fel
Main program, which provides a script interface for talking to FEL.
Usage: ./sunxi-fel [options] command arguments... [command...] -v, --verbose Verbose logging -p, --progress "write" transfers show a progress bar -d, --dev bus:devnum Use specific USB bus and device number spl file Load and execute U-Boot SPL If file additionally contains a main U-Boot binary (u-boot-sunxi-with-spl.bin), this command also transfers that to memory (default address from image), but won't execute it. uboot file-with-spl like "spl", but actually starts U-Boot U-Boot execution will take place when the fel utility exits. This allows combining "uboot" with further "write" commands (to transfer other files needed for the boot). hex[dump] address length Dumps memory region in hex dump address length Binary memory dump exe[cute] address Call function address readl address Read 32-bit value from device memory writel address value Write 32-bit value to device memory read address length file Write memory contents into file write address file Store file contents into memory write-with-progress addr file "write" with progress bar write-with-gauge addr file Output progress for "dialog --gauge" write-with-xgauge addr file Extended gauge output (updates prompt) multi[write] # addr file ... "write-with-progress" multiple files, sharing a common progress status multi[write]-with-gauge ... like their "write-with-*" counterpart, multi[write]-with-xgauge ... but following the 'multi' syntax: <#> addr file [addr file [...]] echo-gauge "some text" Update prompt/caption for gauge output ver[sion] Show BROM version sid Retrieve and output 128-bit SID key clear address length Clear memory fill address length value Fill memory
usb-boot
Legacy script for booting via USB in FEL mode, no longer used. Refer to our usb boot page for more information.
fel-pio
Small binary which runs on the target. It enables IO register access over FEL mode. This should not be used directly.
fel-gpio
A script which uses sunxi-fel to upload fel-pio to the target, and which then can use the sunxi-pio utility, and manipulate GPIO settings, over FEL/USB.
fel-sdboot
A small ARM native SD boot code which forces FEL mode, to boot straight into FEL mode without having to press any buttons.
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.
sunxi-bootinfo
Dump information from Allwinner boot files (boot0/boot1)
--type=sd include SD boot info --type=nand include NAND boot info (not implemented)
meminfo
This device side tool reads in register information and prints out all the information you need for adding new device support to U-Boot. This tool gets statically compiled so it can be used on Android as well.
script-extractor
This device side tool reads the script.bin data from RAM at the magic address 0x43000000 and saves it to a file. This tool gets statically compiled so it can be used on Android as well. Please note that it is only usable with FEX based kernels (as used in the stock Android firmware) and does not make any sense with the devicetree based mainline kernel.
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.
sunxi-nand-part
sunxi-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.
See also
- Fex Guide
- git repository
- FEL mode
- Miniand's online fexc
- fexc for Windows: [1] or [2]
- Sunxi-tools Tutorial