Copyright (C) 2012 Alejandro Mery amery@geeks.cl
For a full list of contributors, see
this link
or use the command git shortlog -se --no-merges
.
Command line utilities to work with devices based on Allwinner SoCs: sun4i, sun5i, ... - that's why the 'x' in the package name.
.fex
file (de)compiler
Usage: ./sunxi-fexc [-vq] [-I <infmt>] [-O <outfmt>] [<input> [<output>]]
infmt: fex, bin (default:fex)
outfmt: fex, bin (default:bin)
compatibility shortcut to call sunxi-fexc
to decompile a script.bin
blob back into .fex
format used by Allwinner's SDK to configure
the boards.
compatiblity shortcut to call sunxi-fexc
to compile a .fex
file
into the binary form used by the legacy 3.4 kernel ("linux-sunxi").
script interface for USB communication with the FEL handler built in to the CPU. You usually activate FEL mode by pushing the uboot / recovery button at poweron, or by having your device "fail over" to FEL when no other boot option is available. See http://linux-sunxi.org/FEL/USBBoot for a detailed usage guide.
When called with no arguments, sunxi-fel will display a short usage summary.
Note: Unless you select a specific device using the --dev
or --sid
options, the tool will access the first Allwinner device (in FEL mode) that it
finds. You can print a list of all FEL devices currently connected/detected
with ./sunxi-fel --list --verbose
.
Simple wrapper (script) around sunxi-pio
and sunxi-fel
to allow GPIO manipulations via FEL
ARM native sdcard bootloader forcing the device into FEL mode
ARM native sdcard bootloader, which is only printing a short "hello" message to the UART0 serial console. Because it relies on runtime SoC type detection, this single image is bootable on a wide range of Allwinner devices and can be used for testing. Additionally, it may serve as a template/example for developing simple bare metal code (LED blinking and other similar GPIO related things).
Manipulate PIO registers/dumps
Tool for manipulating Allwinner NAND partition tables
Tool used to create raw NAND images (including boot0 images)
ARM native boot helper to force the SD port into JTAG and then stop, to ease debugging of bootloaders.
Dump information from Allwinner boot files (boot0 / boot1)
--type=sd include SD boot info
--type=nand include NAND boot info (not implemented)
gives information about a phoenix image created by the phoenixcard utility and optionally extracts the embedded boot code & firmware file from their hidden partitions.
Tool for reading DRAM settings from registers. Compiled as a static binary for use on android and other OSes. To build this, get a toolchain and run:
make CROSS_COMPILE=arm-linux-gnueabihf- sunxi-meminfo
A simple tool, which can be executed on a rooted Android device to dump the script.bin blob from RAM via reading /dev/mem. To build this, get a toolchain and run:
make CROSS_COMPILE=arm-linux-gnueabihf- sunxi-script_extractor
Compilation requires the development version of libusb-1.0 (include header
and library) to be installed for sunxi-fel
. Unless you explicitly pass
LIBUSB_CFLAGS and LIBUSB_LIBS to the make utility, pkg-config
is also
needed. Development versions of zlib and libfdt are also required.
To install the dependencies on Ubuntu 20.04 using package manager:
sudo apt install libusb-1.0-0-dev libz-dev libfdt-dev
Available build targets:
make tools
builds tools that are useful on the host. This is what most people will want,
and our default target (when simply using make
).
make target-tools
builds tools that are intended for the target (Allwinner SoC), using a
cross-compiler. The Makefile will try to auto-detect a suitable toolchain
prefix, and falls back to arm-none-eabi-
otherwise.
If needed, you may override this by explicitly setting CROSS_COMPILE.
Hint: When compiling 'natively' on the target platform you may
simply use an empty toolchain prefix here (make target-tools CROSS_COMPILE=
or make all CROSS_COMPILE=
).
make all
builds both tools and target-tools.
make install-tools
builds tools and then copies/installs them to a filesystem location. The
destination is affected by settings for DESTDIR
, PREFIX
and possibly
BINDIR
. For details, please refer to the Makefile.
You may use make install
as a shortcut for this.
make install-target-tools
builds target-tools and then copies/installs them to a filesystem location
selected by DESTDIR
, PREFIX
and possibly BINDIR
- see make install-tools
above.
make install-all
builds and installs both tools and target-tools.
make misc
builds miscellaneous (host) utilities that are not part of our 'standard' suite.
Currently this means phoenix_info
and sunxi-nand-image-builder
.
make install-misc
builds misc and installs the resulting binaries.
This software is licensed under the terms of GPLv2+ as defined by the Free Software Foundation, details can be read in the LICENSE.md file.