README.md 5.64 KB
Newer Older
1
# sunxi-tools
2
[![License](http://img.shields.io/badge/License-GPL-green.svg)](LICENSE.md)
3
[![Build Status](https://travis-ci.org/linux-sunxi/sunxi-tools.svg?branch=master)](https://travis-ci.org/linux-sunxi/sunxi-tools)
4
[![Releases](https://img.shields.io/github/release/linux-sunxi/sunxi-tools.svg)](https://github.com/linux-sunxi/sunxi-tools/releases)
5
[![Commits](https://img.shields.io/github/commits-since/linux-sunxi/sunxi-tools/v1.4.svg)](https://github.com/linux-sunxi/sunxi-tools/compare/v1.4...master)
6

7
Copyright (C) 2012  Alejandro Mery <amery@geeks.cl>
8
9
10
<br>For a full list of contributors, see
[this link](https://github.com/linux-sunxi/sunxi-tools/contributors)
or use the command `git shortlog -se --no-merges`.
11

12
13
Command line utilities to work with devices based on [Allwinner SoC]s:
sun4i, sun5i, ... - that's why the 'x' in the package name.
Alejandro Mery's avatar
Alejandro Mery committed
14

15
16
### sunxi-fexc
`.fex` file (de)compiler
17

18
	Usage: ./sunxi-fexc [-vq] [-I <infmt>] [-O <outfmt>] [<input> [<output>]]
19
20
21
22

	infmt:  fex, bin  (default:fex)
	outfmt: fex, bin  (default:bin)

23
24
25
26
### 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.
Alejandro Mery's avatar
Alejandro Mery committed
27

28
29
### fex2bin
compatiblity shortcut to call `sunxi-fexc` to compile a `.fex` file
Bernhard Nortmann's avatar
Bernhard Nortmann committed
30
into the binary form used by the legacy 3.4 kernel ("linux-sunxi").
Alejandro Mery's avatar
Alejandro Mery committed
31

32
### sunxi-fel
33
34
35
36
37
38
39
40
41
42
43
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
44
with `./sunxi-fel --list --verbose`.
45

46
47
48
### fel-gpio
Simple wrapper (script) around `fel-pio` and `sunxi-fel`
to allow GPIO manipulations via FEL
49

50
51
### fel-sdboot
ARM native sdcard bootloader forcing the device into FEL mode
52

53
54
55
56
57
58
59
60
### 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).

61
62
### fel-pio
ARM native helper (binary) for `fel-gpio`
63

64
65
### sunxi-pio
Manipulate PIO register dumps
66

67
68
69
### sunxi-nand-part
Tool for manipulating Allwinner NAND partition tables

70
71
72
### sunxi-nand-image-builder
Tool used to create raw NAND images (including boot0 images)

73
74
75
76
77
78
### 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_)
79
80
81

	--type=sd	include SD boot info
	--type=nand	include NAND boot info (not implemented)
82

83
84
85
86
87
88
89
90
91
92
93
### 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
94

95
96
97
98
### 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:
99

100
101
	make CROSS_COMPILE=arm-linux-gnueabihf- sunxi-script_extractor
---
102

103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
## 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.

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 toolchain prefix *CROSS_COMPILE* defaults to `arm-none-eabi-`,
adjust it if needed.
<br>_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.
143
Currently this means `phoenix_info` and `sunxi-nand-image-builder`.
144
145
146
147

* `make install-misc`
builds *misc* and installs the resulting binaries.

148
## License
Alejandro Mery's avatar
Alejandro Mery committed
149
This software is licensed under the terms of GPLv2+ as defined by the
150
151
Free Software Foundation, details can be read in the [LICENSE.md](LICENSE.md)
file.
152

153
[allwinner soc]: http://linux-sunxi.org/Allwinner_SoC_Family
154
[fel mode]: http://linux-sunxi.org/FEL