29d48c3c39
File.exists got removed from Ruby, File.exist should be used instead. |
||
---|---|---|
.github/workflows | ||
bin | ||
include | ||
tests | ||
thunks | ||
.gitignore | ||
.travis.yml | ||
adb-devprobe.sh | ||
autoversion.sh | ||
boot_head.lds | ||
boot_head.S | ||
bootinfo.c | ||
common.h | ||
fel_lib.c | ||
fel_lib.h | ||
fel-gpio | ||
fel-remotefunc-compiler.rb | ||
fel-remotefunc-spi-data-transfer.c | ||
fel-remotefunc-spi-data-transfer.h | ||
fel-sdboot.lds | ||
fel-sdboot.S | ||
fel-spiflash.c | ||
fel-spiflash.h | ||
fel.c | ||
fexc.c | ||
fexc.h | ||
find-arm-gcc.sh | ||
fit_image.c | ||
fit_image.h | ||
jtag-loop.c | ||
jtag-loop.lds | ||
jtag-loop.S | ||
LICENSE.md | ||
Makefile | ||
meminfo.c | ||
nand-common.h | ||
nand-image-builder.c | ||
nand-part-a10.h | ||
nand-part-a20.h | ||
nand-part-main.c | ||
nand-part.c | ||
phoenix_info.c | ||
pio.c | ||
progress.c | ||
progress.h | ||
README.md | ||
script_bin.c | ||
script_bin.h | ||
script_extractor.c | ||
script_fex.c | ||
script_fex.h | ||
script_uboot.c | ||
script_uboot.h | ||
script.c | ||
script.h | ||
soc_info.c | ||
soc_info.h | ||
sunxi-fel.1 | ||
uart0-helloworld-sdboot.c | ||
uart0-helloworld-sdboot.lds |
sunxi-tools
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.
sunxi-fexc
.fex
file (de)compiler
Usage: ./sunxi-fexc [-vq] [-I <infmt>] [-O <outfmt>] [<input> [<output>]]
infmt: fex, bin (default:fex)
outfmt: fex, bin (default:bin)
bin2fex
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.
fex2bin
compatiblity shortcut to call sunxi-fexc
to compile a .fex
file
into the binary form used by the legacy 3.4 kernel ("linux-sunxi").
sunxi-fel
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
.
fel-gpio
Simple wrapper (script) around sunxi-pio
and sunxi-fel
to allow GPIO manipulations via FEL
fel-sdboot
ARM native sdcard bootloader forcing the device into FEL mode
uart0-helloworld-sdboot
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).
sunxi-pio
Manipulate PIO registers/dumps
sunxi-nand-part
Tool for manipulating Allwinner NAND partition tables
sunxi-nand-image-builder
Tool used to create raw NAND images (including boot0 images)
jtag-loop.sunxi
ARM native boot helper to force the SD port into JTAG and then stop, to ease debugging of bootloaders.
sunxi-bootinfo
Dump information from Allwinner boot files (boot0 / boot1)
--type=sd include SD boot info
--type=nand include NAND boot info (not implemented)
phoenix_info
gives information about a phoenix image created by the phoenixcard utility and optionally extracts the embedded boot code & firmware file from their hidden partitions.
sunxi-meminfo
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
sunxi-script_extractor
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
Building
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 usingmake
). -
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 toarm-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=
ormake 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 forDESTDIR
,PREFIX
and possiblyBINDIR
. For details, please refer to the Makefile. You may usemake install
as a shortcut for this. -
make install-target-tools
builds target-tools and then copies/installs them to a filesystem location selected byDESTDIR
,PREFIX
and possiblyBINDIR
- seemake 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 meansphoenix_info
andsunxi-nand-image-builder
. -
make install-misc
builds misc and installs the resulting binaries.
License
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.