Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/linux-sunxi/sunxi-tools.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-12-07uart0-helloworld-sdboot: add support for F1C100sAndre Przywara
The F1C100s series of SoCs has some subtle differences in its UART setup: - The UART is at a previously unused address. - The base clock is not APB2, but APB1. - The input clock is not 24 MHz, but CPU clock / 2 / 2. - The clock and reset gates are different bits at different addresses. Add support for all those differences, tied to the F1C100s SoC ID. Also change the GCC target architecture for uart0-helloworld-sdboot to ARMv5, since this is now the oldest support architecture revision. When the compiler defaulted to ARMv7, it was generating ubfx instructions, which were only introduced in ARMv6. Signed-off-by: Andre Przywara <osp@andrep.de>
2022-01-29sunxi-fel: add manpageAndre Przywara
So far the output of "sunxi-fel -h" was the only source of information about sunxi-fel's command line parameters, and the description was rather terse. Add a manpage that describes the purpose of sunxi-fel and its options it a bit more detail. Amend the Makefile to install the manpage into the usual location. Signed-off-by: Andre Przywara <osp@andrep.de>
2022-01-16Makefile: Specify `pkg-config` via a variable.Ian Campbell
In cross-build situations this allows for `«triplet»-pkg-config` to be passed in so that target libraries are used instead of host ones. Unless `PKG_CONFIG` is overridden by the person doing the build then there is no semantic change. Signed-off-by: Ian Campbell <ijc@debian.org>
2021-01-12fel: Add FIT image parsing and loadingAndre Przywara
So far sunxi-fel expects a legacy U-Boot image after the SPL, when called with the "uboot" command. This only works for (current) 32-bit builds, which only need one image to load (U-Boot proper). 64-bit builds also include at least a Trusted Firmware binary, and also might contain a firmware image for the ARISC management processor. So we use the more capable FIT image, which can contain multiple images to load. Introduce support for that, by adding code to parse a FIT image, find the image files included, and load them to their respective load addresses. On the way we keep track of the entry point, that only one of those images provides, and also note the architecture of this image (ARMv7 or AArch64). On top of that we detect which of the images is the actual U-Boot proper image, and append the chosen DTB to the end of it. This all mimics the code U-Boot's SPL uses to achieve the same goal when running from MMC or SPI flash, compare the implementation of spl_load_simple_fit() in U-Boot's common/spl/spl_fit.c: https://gitlab.denx.de/u-boot/u-boot/-/blob/master/common/spl/spl_fit.c This requires the libfdt library for parsing the FIT image (which is in fact a devicetree blob). Signed-off-by: Andre Przywara <osp@andrep.de>
2018-07-09fel: Add SPI flash programmer implementationSiarhei Siamashka
Using the new AAPCS function remote execution support, add support to read from and write to SPI flash connected to a device. This allows flashing boot code to a device. Signed-off-by: Siarhei Siamashka <siarhei.siamashka@gmail.com> [Andre: adjust to upstream changes] Signed-off-by: Andre Przywara <osp@andrep.de>
2017-11-06fel: Check the U-Boot's CRC instead of its sizeMaxime Ripard
The current code checks that the transferred size is matching the size reported in the image header. Unfortunately, the transferred image might be padded, which doesn't change anything at the functional level, but will make that check trigger since the actual image will be smaller than the transferred data. Change that logic to first check that the transferred size isn't less that the header image size, which will still be an error, and then check for the CRC of the image itself. This will prove to be an more robust integrity check than what we have right now anyway. The CRC used in the image header is the CRC32 algorithm, that is implemented in the zlib, which is installed on most devices on the planet, so we can just use that implementation instead of rolling our own. Tested-by: Frank Kunz <mailinglists@kunz-im-inter.net> Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
2017-02-11Makefile: Improve auto-detection of ARM cross compilerBernhard Nortmann
This patch moves the scan for an ARM gcc into a separate shell script. To prevent against recursion issues, the new script adds "-maxdepth 1" to the find invocation; and it now also correctly handles directories in $PATH that contain spaces in their name. Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
2017-02-11Hide error messages about nonexisting directories when scanning $PATHPriit Laes
$PATH can contains directories that do not exist, so hide error messages about those entries. Signed-off-by: Priit Laes <plaes@plaes.org>
2017-01-28thunks: Adjust build system for ARM thunk .hBernhard Nortmann
"make headers" (which in turn invokes "make -C thunks/" should now build the include files via awk, avoiding the need for ruby. Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
2017-01-28Move thunk code / snippets to a dedicated subdirectoryBernhard Nortmann
Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
2017-01-28Makefile: Improve auto-detection of ARM cross compilerBernhard Nortmann
Try an 'educated guess' for a suitable toolchain if no explicit CROSS_COMPILE was set (but still default to "arm-none-eabi-"). Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
2016-12-30fel: Remove obsolete fel-pio (thunk) codeBernhard Nortmann
This functionality is now available via "sunxi-fel memmove", so change the fel-gpio script accordingly and remove the thunk code. Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
2016-12-28Makefile: Use `uname` for OS detection on *nix platformsBernhard Nortmann
Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
2016-11-29fel: Factor out a new FEL libraryBernhard Nortmann
The FEL utility had accumulated enough (mostly USB-related) "low-level" code to justify moving that to a separate code unit. This will allow us to keep better focus on the higher level functionality in fel.c. Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
2016-11-13fel: Factor out SoC information (and SRAM buffers) retrievalBernhard Nortmann
While at it, modify the former "sram_info" identifiers to carry a broader "soc_info" meaning. Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
2016-11-12tests: Introduce a basic testing frameworkBernhard Nortmann
All tests should go into the new "tests" subdirectory. The idea is that the separate Makefile in that directory will get invoked via a top-level "make check". The tests/Makefile should then take care of running all available tests, returning an appropriate exit status. Future tests may be functional, examine code metrics (coverage analysis), or both. For a start, I'd simply like to check that sunxi-fexc is able to properly compile all the .fex files from linux-sunxi/sunxi-boards. (Note: This currently FAILS and will probably require adjustments to both sunxi-tools and the .fex repository. To work around this, for now I'm applying patches to fix sunxi-boards.) Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
2016-11-10Makefile: Modify default CFLAGSBernhard Nortmann
This removes the "-g -O0" default (to leave them up to the user CFLAGS), and adds a switch to ignore "unused result" warnings. The latter is relevant when trying to compile nand-part.c with optimizations enabled. Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
2016-11-06Makefile: Revert sunxi-pio change from 209633aBernhard Nortmann
The previous commit had introduced a new build rule that made sunxi-pio always (cross-)compile as part of TARGET_TOOLS. This originated from a misunderstanding, and is wrong - sunxi-pio should be part of TOOLS instead. sunxi-pio is a "dual mode" utility. When run natively on a sunxi SoC, it can mmap() and manipulate the PIO registers directly. But it also supports file-based operation, to be used in conjunction with sunxi-fel (after uploading fel-pio.bin thunk code). This should work over USB from non-sunxi hosts, and thus puts sunxi-pio in the TOOLS category. See the fel-gpio shell script for details. Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
2016-10-29Makefile: Ensure that user-supplied CFLAGS get respectedBernhard Nortmann
Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
2016-10-29Merge pull request #73 from n1tehawk/20161027_issue70v1.4.1NiteHawk
Build system improvements
2016-10-29Makefile: Unify rules for target-tools, narrow down on dependenciesBernhard Nortmann
This appends sunxi-meminfo to the TARGET_TOOLS, and adds a new rule to fix the compilation of sunxi-pio (by making it *cross-compile* for the target). Additionally adds a new build target "make install-misc". For more details, see github issues #69 and #70. Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
2016-10-28Makefile: Adjust default targets for "make" and "make install"Bernhard Nortmann
Fixing the (currently erroneous) compilation of sunxi-pio will cause "make target-tools" to require a suitable cross-compiler installed. Otherwise "make target-tools" fails to build. As that is part of our default target ("make all"), we might possibly introduce a build breakage on quite a few systems. Avoid this situation by redefining "make tools" as the default, and change "make install" to "make install-tools", i.e. limit the standard targets to those builds that only rely on the host toolchain. From now, if you actually want to include the cross- compiling steps, use "make all" or "make install-all" instead. Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
2016-10-26Makefile: allow overriding libusb Makefile variables externallyBernhard Nortmann
Also: Add the winsock2 library to LIBS for Windows. When not linking against it, the usage of WS2 conversion functions from portable_endian.h would cause unresolved symbols. Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
2016-10-26Have a workaround for missing mmap() in fexc.c and pio.cBernhard Nortmann
By defining NO_MMAP it's now possible to avoid the usage of mmap() and munmap(). This benefits platforms that don't support these functions, e.g. Windows. Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
2016-10-21Add support for auto-updated version informationBernhard Nortmann
The Makefile will now use a script (autoversion.sh) to update version.h, which in turn defines a VERSION string and gets included from common.h. The idea is that version.h normally receives a git-describe based identifier that represents the current checkout. In cases where git might not be available, e.g. for builds from a tarball, the script will instead fall back to a predefined version (that should reflect the most recent release tag). Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
2016-06-03Merge pull request #44 from ssvb/20160512-uart0-helloworldSiarhei Siamashka
Add new uart0-helloworld-sdboot.sunxi bootable test image
2016-06-03Add new uart0-helloworld-sdboot.sunxi bootable test imageSiarhei Siamashka
This is a universal bootable image, which just prints a hello message on UART0. For example, it is useful as a test payload when debugging the SPI boot functionality: https://linux-sunxi.org/Bootable_SPI_flash Changes in v2: - A workaround for https://patchwork.ozlabs.org/patch/622173 - Also print the type of the used bootable media Changes in v3: - Bernhard Nortmann's workaround for https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63803 More details in https://github.com/linux-sunxi/sunxi-tools/pull/44 Signed-off-by: Siarhei Siamashka <siarhei.siamashka@gmail.com>
2016-05-31Add a tool to generate raw NAND imagesBoris Brezillon
Generating raw NAND images is particularly useful for boot0 images creation since the mainline driver is not supporting the funky layout used by Allwinner's ROM code to load the boot0 binary from NAND. This tools also allows one to generate raw images for 'normal' partitions so that they can be flashed before soldering on the NAND on the board (using a regular NAND programmer). The tool takes care of generating ECC bytes and randomizing data as expected by the NAND controller, and re-arranging the ECC/data sections correctly. Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
2016-05-28fel-sdboot: Fix header corruption workaround, implement in assemblyBernhard Nortmann
Now that we have a better understanding of what's causing the issue that prevented entering FEL sometimes, we can adjust the workaround code to a proper solution, i.e. skip over the problematic location. Since the code amounts to less than a dozen ARM instructions, I've decided to rewrite it as assembly code - fel-sdboot.S replaces the former fel-sdboot.c. The commit also includes a new binary (bin/fel-sdboot.sunxi) with these changes. Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de> Reviewed-by: Siarhei Siamashka <siarhei.siamashka@gmail.com>
2016-05-06Fix compatibility with Linaro toolchains for building ARM binariesSiarhei Siamashka
Add DISCARD directives to the linker scripts and also -marm option to GCC command line. Without this, certain toolchains may build Thumb2 code by default. Also junk sections may be present in the final binary and they need to be removed. This helps at least when using the following Linaro toolchain: gcc-linaro-5.1-2015.08-x86_64_arm-linux-gnueabihf.tar.xz Signed-off-by: Siarhei Siamashka <siarhei.siamashka@gmail.com> Reviewed-by: Bernhard Nortmann <bernhard.nortmann@web.de>
2016-05-06Makefile: Add "binfiles" target and simplify rule setsBernhard Nortmann
"make binfiles" should allow building ARM binaries more easily. Factor out common $(ARM_ELF_FLAGS). Also rewrite some rules using $< and $@, to avoid repeating filenames. And trim down on the number of rules using patterns for objcopy (%.elf -> %.bin) and mksunxiboot (%.bin -> %.sunxi). Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
2016-05-04travis-ci: Be more strict on build checksBernhard Nortmann
After eliminating all warnings, we can disallow them for future builds. This is done by passing an additional "-Werror" flag from the Travis build step. Introducing new warnings will cause a (CI) build failure from now on. Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
2016-05-04Makefile: Provide a way to pass explicit _NETBSD_SOURCEBernhard Nortmann
Commit 73c20eea7bf0f12795ab94685fbb98eda0cf2cce removed that symbol from fel.c - this adds it back (in the Makefile) to address #22. Caveat: This probably requires you to use "make OS=NetBSD". I have currently no way of testing it; we're only checking Linux and OSX builds. Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
2016-05-04travis-ci: Extend build matrix, disable email notificationsBernhard Nortmann
We'll be testing both gcc and clang builds on Linux. As for now, Travis CI only supports clang for OSX - so exclude gcc currently. Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
2016-05-03Makefile: Have portable_endian.h properly expose all functionsBernhard Nortmann
For Linux, this requires additional #defines, see https://gist.github.com/panzi/6856583#gistcomment-1656524 Placing those #defines into portable_endian.h would mean we depend on the specific order of #includes (whatever pulls in endian.h first, including other system includes). Avoid this by using symbols provided "globally" via the Makefile. Also nuke the _NETBSD_SOURCE definition in fel.c Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
2015-12-16Makefile: Add sunxi-script_extractor targetJustin Swartz
Signed-off-by: Justin Swartz <justin.swartz@risingedge.co.za> Acked-by: Siarhei Siamashka <siarhei.siamashka@gmail.com>
2015-12-07fel: Introduce progress frameworkBernhard Nortmann
This patch adds two new source files that will deal with code related to progress callbacks and display. I have decided to keep this separate, as there will be many smaller routines involved, which otherwise would bloat fel.c unnecessarily. For starters, let's also move the gettime() function there. Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de> Reviewed-by: Siarhei Siamashka <siarhei.siamashka@gmail.com>
2015-10-27Makefile: use force option when creating symlinksPeter Korsgaard
So it doesn't error out if the symlink already exists (E.G. is pointing to the old name). Also add the -n option for consistency with the install target. Signed-off-by: Peter Korsgaard <peter@korsgaard.com> Acked-by: Ian Campbell <ijc@hellion.org.uk>
2015-10-23Makefile: Add an install ruleIan Campbell
Allow for separate installation of tools and target-tools, to aid in packaging. By default everything the tools are installed into /usr/local/bin but this can be overridden using PREFIX= or BINDIR= on the make invocation. To enable this it was necessary to split fex2bin and bin2fex out from $(TOOLS) into $(FEXC_LINKS), because install(1) does not seem to have a mode which preserves symlinks so it needs to be done separately. Supports DESTDIR to allow for convenient installation into a staging dir for distro packaging convenience. Signed-off-by: Ian Campbell <ijc@hellion.org.uk> Acked-by: Peter Korsgaard <peter@korsgaard.com>
2015-10-23Makefile: Split out target tools rulesIan Campbell
Target tools are those which are only useful on a target sunxi system (i.e. which probe hardware etc). Currently this is only sunxi-pio. At first I thought sunxi-nand-part might be included, but I think that is useful on NAND images as well as actual devices. This will allow for easier packaging, by letting packagers only include the target tools when building for a suitable ARM architecture. Signed-off-by: Ian Campbell <ijc@hellion.org.uk> Acked-by: Peter Korsgaard <peter@korsgaard.com>
2015-10-23Makefile: Prefix most tools with sunxi-Ian Campbell
Several of the tools here are too generic and/or short for distro packaging purposes (which like to try and avoid naming clashes in $PATH). Prefix the following with "sunxi-": - fexc - bootinfo - fel - pio - meminfo Do not prefix any of the fel "payloads" or raw binaries since they would not normally be installed in $PATH. Do not prefix "phoenix_info", since "phoenix" already seems like an appropriate prefix for this particular tool. Update in-tree callers, README and .gitignore accordingly. Signed-off-by: Ian Campbell <ijc@hellion.org.uk> Acked-by: Peter Korsgaard <peter@korsgaard.com>
2015-09-08Makefile: 'fel' tool depends on fel-to-spl-thunk.hSiarhei Siamashka
Signed-off-by: Siarhei Siamashka <siarhei.siamashka@gmail.com> Acked-by: Hans de Goede <hdegoede@redhat.com>
2014-08-15meminfo: rename and add to buildLuc Verhaegen
* rename a10-meminfo to meminfo * add static build to Makefile * fix operand warning * built binary verified on proper linux and android Signed-off-by: Luc Verhaegen <libv@skynet.be>
2014-07-01Add copyright headers to various files.Ian Campbell
I'd like to package sunxi-tools for Debian and therefore it is important for the licensing information to be complete/accurate. I believe the intention was for everything here to be GPL2+ by default, since that is the license on every file which has one and COPYING contains GPL2. Early on the license applied to this repo was GPLv3 however this was changed to GPL2+ by Alejandro in 79ea14d4e050 at which point he had been the only contributor. This patch adds the standard GPL2+ stanza used already in sunxi-tools.git or the MIT license stanza when requested by the copyright holder to various files which were missing one as follows: adb-devprobe.sh fel-gpio According to git all of these were written by Henrik. Copyright years according to git. Henrik requested that these be put under an MIT license, so that is what has been done. boot_head.lds fel-pio.lds fel-sdboot.lds jtag-loop.lds According to git all of these were written by Henrik. Copyright years according to git. According to Henrik "These linker scripts are all GPLv2+ as the C / ASM sources they refer to". include/endian_compat.h The content of this file was originally added to fel.c (commit c71ff92c02d3), which had a GPL2+ stanza at the time, by Eric Molitor and later those lines were moved by Alejandro (commit bcde0fc72170) into this file. I originally added GPL2+ from fel.c and added Eric's copyright with the correct year according to git but Eric said "Ack but also would prefer MIT/Dual :)", so it has now been changed to MIT. include/types.h: Henrik originally added some of these lines to bootinfo.c, along with a GPL2+ stanza, in the original version (commit c26e5ff80af6). Later on Alejandro moved them into this file (commit 329a13ed75e5) and added more. I've copied the stanza from bootinfo.c and added both copyrights with the years according to git. Authors: Henrik, who says "OK". Alejandro Mery Makefile: GPL2+ with copyrights and years according to git. Authors are: Alejandro Mery Henrik Nordstrom, who says "Yes" Pat Wood, who says "Fine with me" usb-boot: Henrik is the primary author, added MIT license on Henrik's request with his copyright and years according to git. Authors are: Henrik Nordstrom, who says "Yes, that too should be MIT" Alejandro Mery (typo fix) Michal Suchanek (typo fix) Everyone affected by the above is CCd. This probably seems pretty obvious to most people, sorry for being so pedantic about it. It will save hassel when it comes to getting it into Debian though. Signed-off-by: Ian Campbell <ijc@hellion.org.uk> Cc: Henrik Nordstrom <henrik@henriknordstrom.net> Cc: Eric Molitor <eric@molitor.org> Cc: Alejandro Mery <amery@geeks.cl> Cc: Pat Wood <Pat.Wood@efi.com> Cc: Michal Suchanek <hramrach@gmail.com> --- v2: Gathered feedback from the authors - Pat said "Fine with me" - Henrik asked that adb-devprobe.sh, fel-gpio and usb-boot be MIT, acked *.lds, types.h and Makefile - Explicitly listed authors of Makefile and usb-boot - Michal Suchanek make a typo fix to usb-boot but wasn't CCd, sorry. - Reworded commit message due to some bits now being MIT on request of the author.
2013-09-19nand-part: create one nand-part program to handle both A10 and A20Patrick Wood
Build one nand-part program to handle both A10 and A20 mbr header formats. Changed -f option to take an "a10" or "a20" argument to specify which mbr format to force. Signed-off-by: Patrick Wood <patrickhwood@gmail.com>
2013-07-23build both A10 and A20 nand-part executablesPat Wood
allow setting of partition 1 size/offset if -f option is used, force writing of MBR header, even if CRC or header magic/version are incorrect (for recovery only)
2013-05-16Rename fel-boot to fel-sdboot to avoid confusion with new fel-boot FEL ↵Henrik Nordstrom
bootloader
2012-10-11Merge branch 'master' of github.com:amery/sunxi-toolsHenrik Nordstrom
2012-10-11Boot header to work around broken bootloadersHenrik Nordstrom
2012-09-29fexc: add `uboot` outputAlejandro Mery