- 12 Jan, 2021 1 commit
-
-
Andre Przywara authored
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>
-
- 09 Jul, 2018 1 commit
-
-
Siarhei Siamashka authored
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>
-
- 06 Nov, 2017 1 commit
-
-
Maxime Ripard authored
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>
-
- 11 Feb, 2017 2 commits
-
-
Bernhard Nortmann authored
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>
-
Priit Laes authored
$PATH can contains directories that do not exist, so hide error messages about those entries. Signed-off-by: Priit Laes <plaes@plaes.org>
-
- 27 Jan, 2017 3 commits
-
-
Bernhard Nortmann authored
"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>
-
Bernhard Nortmann authored
Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
-
Bernhard Nortmann authored
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>
-
- 30 Dec, 2016 1 commit
-
-
Bernhard Nortmann authored
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>
-
- 28 Dec, 2016 1 commit
-
-
Bernhard Nortmann authored
Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
-
- 29 Nov, 2016 1 commit
-
-
Bernhard Nortmann authored
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>
-
- 13 Nov, 2016 1 commit
-
-
Bernhard Nortmann authored
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>
-
- 12 Nov, 2016 1 commit
-
-
Bernhard Nortmann authored
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>
-
- 10 Nov, 2016 1 commit
-
-
Bernhard Nortmann authored
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>
-
- 06 Nov, 2016 1 commit
-
-
Bernhard Nortmann authored
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>
-
- 29 Oct, 2016 2 commits
-
-
Bernhard Nortmann authored
Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
-
Bernhard Nortmann authored
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>
-
- 27 Oct, 2016 1 commit
-
-
Bernhard Nortmann authored
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>
-
- 26 Oct, 2016 2 commits
-
-
Bernhard Nortmann authored
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>
-
Bernhard Nortmann authored
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>
-
- 21 Oct, 2016 1 commit
-
-
Bernhard Nortmann authored
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>
-
- 03 Jun, 2016 1 commit
-
-
Siarhei Siamashka authored
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>
-
- 31 May, 2016 1 commit
-
-
Boris Brezillon authored
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>
-
- 28 May, 2016 1 commit
-
-
Bernhard Nortmann authored
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>
-
- 06 May, 2016 2 commits
-
-
Siarhei Siamashka authored
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>
-
Bernhard Nortmann authored
"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>
-
- 04 May, 2016 3 commits
-
-
Bernhard Nortmann authored
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>
-
Bernhard Nortmann authored
Commit 73c20eea 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>
-
Bernhard Nortmann authored
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>
-
- 03 May, 2016 1 commit
-
-
Bernhard Nortmann authored
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>
-
- 16 Dec, 2015 1 commit
-
-
Justin Swartz authored
Signed-off-by: Justin Swartz <justin.swartz@risingedge.co.za> Acked-by: Siarhei Siamashka <siarhei.siamashka@gmail.com>
-
- 07 Dec, 2015 1 commit
-
-
Bernhard Nortmann authored
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>
-
- 27 Oct, 2015 1 commit
-
-
Peter Korsgaard authored
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>
-
- 23 Oct, 2015 3 commits
-
-
Ian Campbell authored
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>
-
Ian Campbell authored
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>
-
Ian Campbell authored
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>
-
- 08 Sep, 2015 1 commit
-
-
Siarhei Siamashka authored
Signed-off-by: Siarhei Siamashka <siarhei.siamashka@gmail.com> Acked-by: Hans de Goede <hdegoede@redhat.com>
-
- 14 Aug, 2014 1 commit
-
-
Luc Verhaegen authored
* 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>
-
- 01 Jul, 2014 1 commit
-
-
Ian Campbell authored
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 79ea14d4 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 c71ff92c), which had a GPL2+ stanza at the time, by Eric Molitor and later those lines were moved by Alejandro (commit bcde0fc7) 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 c26e5ff8). Later on Alejandro moved them into this file (commit 329a13ed ) 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.
-
- 19 Sep, 2013 1 commit
-
-
Patrick Wood authored
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>
-