A collection of command line tools for ARM devices with Allwinner SoCs.

Overview

sunxi-tools

License Build Status Releases Commits

Copyright (C) 2012 Alejandro Mery [email protected]
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 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.

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.

Comments
  • Use sunxi-fel to boot multiple devices in parallel

    Use sunxi-fel to boot multiple devices in parallel

    Maybe I simply miss something (like the sunxi-fel's progress bar I've not noticed for a long time). We changed our build process to be able to do FEL/NFS boot and I wanted now attach up to 4 sunxi boards to my new build host to be able to test them in parallel.

    I attached two and get:

    [email protected]:~# sunxi-fel -v ver
    AWUSBFEX soc=00001680(H3) 00000001 ver=0001 44 08 scratchpad=00007e00 00000000 00000000
    
    [email protected]:~# lsusb | grep Onda
    Bus 008 Device 002: ID 1f3a:efe8 Onda (unverified) V972 tablet in flashing mode
    Bus 003 Device 002: ID 1f3a:efe8 Onda (unverified) V972 tablet in flashing mode
    

    Is there already the possibility to specify bus/device ID and is sunxi-fel prepared to be run in multiple instances at the same time?

    enhancement 
    opened by ThomasKaiser 25
  • fel: relax SCTLR check

    fel: relax SCTLR check

    On a H2+ (Orange Pi Zero), if I enter fel mode by entering "go 0xFFFF0020" on u-boot cmd line, then sunxi-fel fails with this error:

    "Unexpected SCTLR (00C5287A)"

    This does not happen when I enter fel mode directly on power-on (no sd card for eg).

    I've attempted to remove this check and sunxi-fel can work fine without it (tested uboot command successfully).

    I suggest SCTLR check is relaxed.

    opened by nunojpg 19
  • Fixes and adding a

    Fixes and adding a "Github Actions" file to replace broken Travis CI

    Some fixes for issues I stumbled upon:

    • GCC 11 issues a warning for some wrongly annotated parameter.
    • The FEX compiler cannot deal with '-' and '/' characters in section and key names. This is replacing PR #103, which had an issue that I fixed.
    • make check is broken, due to changes in mainline sunix-boards.git HEAD, which it downloads. I issued PR 70 there, but meanwhile carry a patch applied to the downloaded zip file. This can hopefully removed soon.
    • Travis CI seems to be broken (in technical and administrative ways), see the commit message. Replace it with a Github Actions file to get some CI coverage back.

    Please merge, and consider making a v1.5 release.

    opened by apritzel 15
  • sunxi-tools 1.4 doesn't install sunxi-nand-image-builder

    sunxi-tools 1.4 doesn't install sunxi-nand-image-builder

    sunxi-tools 1.4 doesn't install sunxi-nand-image-builder.

    I'm packaging sunxi-tools for Guix and it won't install sunxi-nand-image-builder that way. Did you mean to leave it off? Or is it supposed to go in TOOLS ?

    opened by daym 15
  • fexc fixes

    fexc fixes

    I'm currently experimenting with functional tests that do a "fex2bin + bin2fex cycle" on all FEX files from sunxi-boards. In doing that, two minor problems with the current code showed up. This pull request addresses those.

    fexc reviewed 
    opened by n1tehawk 12
  • Add new uart0-helloworld-sdboot.sunxi bootable test image

    Add new uart0-helloworld-sdboot.sunxi bootable test image

    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.

    Still no support for A23, A33, A83T and A80, because I don't have any of these devices to test.

    Patch revision v1 (53f7f146bed21531481185b154dc62ed80ad064c).

    enhancement reviewed 
    opened by ssvb 12
  • fel: Implement

    fel: Implement "rmr" commands to force warm reset into AArch32/AArch64

    See also: http://irclog.whitequark.org/linux-sunxi/2016-05-23#16539174

    The idea is stuff like sunxi-fel -v spl ${SPL} write 0x44000 ${ATF} rmr64 0x44000, possibly augmented by suitable (64-bit) U-Boot and kernel binaries (or u-boot-with-spl.bin in place of ${SPL}).

    A first test on Pine64 with a debug ATF kindly provided by @apritzel was successful, and demonstrated smooth transition to pure 64-bit code.


    Changes in v1: Initial version

    Changes in v2:

    • Do not expose any 32-bit functionality (reset32 into AArch32) for now; we first need to better understand the requirements and implications.
    • Renamed rmr64 command to reset64.
    reviewed 
    opened by n1tehawk 11
  • Add A63 support

    Add A63 support

    This adds support for the Allwinner A63, which is almost same as H6, but with different DRAM controller (maybe Designwire ?), and different interface. The DRAM controller on A63 is closed to T7. Also includes uart0 hello world support for this SoCs.

    opened by ChalesYu 10
  • Support for V536

    Support for V536

    Hi, I used sunxi-fel too to communicate with V536 based CPU but seems it's not fully supported as I'm getting:

     sudo ./sunxi-fel spiflash-info
    Warning: no 'soc_sram_info' data for your SoC (id=1816)
    SPI support not implemented yet for 0 ((null))!
    [email protected]:$ sudo ./sunxi-fel ver
    Warning: no 'soc_sram_info' data for your SoC (id=1816)
    AWUSBFEX soc=00001816(unknown) 00000001 ver=0001 44 08 scratchpad=00027e00 00000000 00000000
    [email protected]:$ sudo ./sunxi-fel sid
    Warning: no 'soc_sram_info' data for your SoC (id=1816)
    SID registers for your SoC (0x1816) are unknown or inaccessible.
    
    

    So seems support is missing? Is there anything I can help with to add support? Thanks.

    opened by nandra 10
  • sunxi-tools 1.4 make fails when building meminfo

    sunxi-tools 1.4 make fails when building meminfo

    $ make TARGET_TOOLS=meminfo
    ...cc -g -O0 -Wall -Wextra  -std=c99 -D_POSIX_C_SOURCE=200112L -D_BSD_SOURCE -D_DEFAULT_SOURCE -Iinclude/    meminfo.c Makefile common.h version.h   -o meminfo
    ....Makefile: file not recognized: File format not recognized
    

    That is because we add Makefile, common.h and version.h as dependencies to all the tools (which I think is good).

    However, the entry for sunxi-meminfo says:

    sunxi-meminfo: meminfo.c
            $(CROSS_COMPILE)gcc -g -O0 -Wall -static -o [email protected] $^
    

    And $^ will pass the Makefile to the compiler - which will barf.

    I'd pass $<

    Same for sunxi-script_extractor and sunxi-fel and the generic sunxi-% rule.

    opened by daym 10
  • Extend continous integration by adding tests framework

    Extend continous integration by adding tests framework

    My goal for this series is to implement automated functional tests for sunxi-fexc, to ensure that all .fex files from the sunxi-boards repository can be compiled to binary format (fex2bin) and decompiled back (bin2fex) from .bin sucessfully.

    I'll gradually amend the pull request, to check that the Travis CI status is fine after each commit.


    v1: Initial version

    needs review 
    opened by n1tehawk 10
  • A SEGV fault was discovered in bin2fex

    A SEGV fault was discovered in bin2fex

    Description

    A SEGV fault was discovered in function decompile_section /script_bin.c:277:21

    Version

    Version v1.4 (Lastest commit)

    Environment

    Ubuntu 18.04, 64bit

    Reproduce

    Command

    git clone the Lastest Version firstly.
    make
    ./bin2fex  ./poc
    

    POC file at the bottom of this report.

    ASAN Report

    AddressSanitizer:DEADLYSIGNAL
    =================================================================
    ==674==ERROR: AddressSanitizer: SEGV on unknown address 0x7f947bd0a1f8 (pc 0x0000004d4d3c bp 0x7ffd1cfb23b0 sp 0x7ffd1cfb21c0 T0)
    ==674==The signal is caused by a READ memory access.
        #0 0x4d4d3c in decompile_section /AFLplusplus/my_test/sunxi-tools-master/valid/sunxi-tools-master/script_bin.c:277:21
        #1 0x4d4d3c in script_decompile_bin /AFLplusplus/my_test/sunxi-tools-master/valid/sunxi-tools-master/script_bin.c:351:8
        #2 0x4ca07b in script_parse /AFLplusplus/my_test/sunxi-tools-master/valid/sunxi-tools-master/fexc.c:142:9
        #3 0x4ca07b in main /AFLplusplus/my_test/sunxi-tools-master/valid/sunxi-tools-master/fexc.c:331:13
        #4 0x7f948a9de082 in __libc_start_main /build/glibc-SzIz7B/glibc-2.31/csu/../csu/libc-start.c:308:16
        #5 0x41d3ed in _start (/AFLplusplus/my_test/sunxi-tools-master/valid/sunxi-tools-master/sunxi-fexc+0x41d3ed)
    
    AddressSanitizer can not provide additional info.
    SUMMARY: AddressSanitizer: SEGV /AFLplusplus/my_test/sunxi-tools-master/valid/sunxi-tools-master/script_bin.c:277:21 in decompile_section
    

    POC

    id_000001,sig_11,src_000000,time_934,op_havoc,rep_2.zip

    Any issue plz contact with me: [email protected] OR: twitter: @Asteriska8

    opened by Asteriska8 0
  • a memory leak was discovered in bin2fex

    a memory leak was discovered in bin2fex

    Description

    A memory leak bug was discovered in function script_section_new /AFLplusplus/my_test/sunxi-tools-master/valid/sunxi-tools-master/script.c:63:17

    Version

    Version v1.4 (Lastest commit)

    Environment

    Ubuntu 18.04, 64bit

    Reproduce

    Command

    git clone the Lastest Version firstly.
    make
    ./bin2fex  ./poc
    

    POC file at the bottom of this report.

    ASAN Report

    =================================================================
    ==13486==ERROR: LeakSanitizer: detected memory leaks
    
    Direct leak of 64 byte(s) in 1 object(s) allocated from:
        #0 0x4982ad in malloc (/AFLplusplus/my_test/sunxi-tools-master/valid/sunxi-tools-master/sunxi-fexc+0x4982ad)
        #1 0x4ce9cc in script_section_new /AFLplusplus/my_test/sunxi-tools-master/valid/sunxi-tools-master/script.c:63:17
        #2 0x4ca07b in script_parse /AFLplusplus/my_test/sunxi-tools-master/valid/sunxi-tools-master/fexc.c:142:9
        #3 0x4ca07b in main /AFLplusplus/my_test/sunxi-tools-master/valid/sunxi-tools-master/fexc.c:331:13
        #4 0x7f40bd4a6082 in __libc_start_main /build/glibc-SzIz7B/glibc-2.31/csu/../csu/libc-start.c:308:16
    
    SUMMARY: AddressSanitizer: 64 byte(s) leaked in 1 allocation(s).
    

    POC

    Any issue plz contact with me: id_000002,sig_11,src_000000,time_1066,op_havoc,rep_4.zip

    [email protected] OR: twitter: @Asteriska8

    opened by Asteriska8 0
  • a global-buffer-overflow bug was discovered  in bin2fex

    a global-buffer-overflow bug was discovered in bin2fex

    Description

    A global-buffer-overflow bug was discovered in function MemcmpInterceptorCommon(void*, int ()(void const, void const*, unsigned long), void const*, void const*, unsigned long)

    Version

    Version v1.4 (Lastest commit)

    Environment

    Ubuntu 18.04, 64bit

    Reproduce

    Command

    git clone the Lastest Version firstly.
    make
    ./bin2fex  ./poc
    

    POC file at the bottom of this report.

    ASAN Report

    =================================================================
    ==17071==ERROR: AddressSanitizer: global-buffer-overflow on address 0x0000004f4d68 at pc 0x000000433a7c bp 0x7ffc7157f5a0 sp 0x7ffc7157ed48
    READ of size 9 at 0x0000004f4d68 thread T0
        #0 0x433a7b in MemcmpInterceptorCommon(void*, int (*)(void const*, void const*, unsigned long), void const*, void const*, unsigned long) (/AFLplusplus/my_test/sunxi-tools-master/valid/sunxi-tools-master/sunxi-fexc+0x433a7b)
        #1 0x433e8a in bcmp (/AFLplusplus/my_test/sunxi-tools-master/valid/sunxi-tools-master/sunxi-fexc+0x433e8a)
        #2 0x4d7084 in find_full_match /AFLplusplus/my_test/sunxi-tools-master/valid/sunxi-tools-master/script_fex.c:56:7
        #3 0x4d7084 in decompile_single_mode /AFLplusplus/my_test/sunxi-tools-master/valid/sunxi-tools-master/script_fex.c:78:6
        #4 0x4d7084 in script_generate_fex /AFLplusplus/my_test/sunxi-tools-master/valid/sunxi-tools-master/script_fex.c:102:16
        #5 0x4cb2c1 in script_generate /AFLplusplus/my_test/sunxi-tools-master/valid/sunxi-tools-master/fexc.c:179:9
        #6 0x4cb2c1 in main /AFLplusplus/my_test/sunxi-tools-master/valid/sunxi-tools-master/fexc.c:332:6
        #7 0x7f791fc4c082 in __libc_start_main /build/glibc-SzIz7B/glibc-2.31/csu/../csu/libc-start.c:308:16
        #8 0x41d3ed in _start (/AFLplusplus/my_test/sunxi-tools-master/valid/sunxi-tools-master/sunxi-fexc+0x41d3ed)
    
    0x0000004f4d68 is located 56 bytes to the left of global variable '<string literal>' defined in 'script_fex.c:69:31' (0x4f4da0) of size 9
      '<string literal>' is ascii string 'dram_tpr'
    0x0000004f4d68 is located 0 bytes to the right of global variable '<string literal>' defined in 'script_fex.c:69:20' (0x4f4d60) of size 8
      '<string literal>' is ascii string 'dram_zq'
    SUMMARY: AddressSanitizer: global-buffer-overflow (/AFLplusplus/my_test/sunxi-tools-master/valid/sunxi-tools-master/sunxi-fexc+0x433a7b) in MemcmpInterceptorCommon(void*, int (*)(void const*, void const*, unsigned long), void const*, void const*, unsigned long)
    Shadow bytes around the buggy address:
      0x000080096950: 00 00 00 00 00 f9 f9 f9 f9 f9 f9 f9 06 f9 f9 f9
      0x000080096960: f9 f9 f9 f9 06 f9 f9 f9 f9 f9 f9 f9 00 00 00 00
      0x000080096970: 00 04 f9 f9 f9 f9 f9 f9 00 00 00 00 00 05 f9 f9
      0x000080096980: f9 f9 f9 f9 00 00 00 00 05 f9 f9 f9 f9 f9 f9 f9
      0x000080096990: 00 00 00 00 00 00 07 f9 f9 f9 f9 f9 00 00 00 00
    =>0x0000800969a0: f9 f9 f9 f9 00 06 f9 f9 f9 f9 f9 f9 00[f9]f9 f9
      0x0000800969b0: f9 f9 f9 f9 00 01 f9 f9 f9 f9 f9 f9 00 01 f9 f9
      0x0000800969c0: f9 f9 f9 f9 00 01 f9 f9 f9 f9 f9 f9 00 00 04 f9
      0x0000800969d0: f9 f9 f9 f9 00 00 04 f9 f9 f9 f9 f9 00 05 f9 f9
      0x0000800969e0: f9 f9 f9 f9 00 05 f9 f9 f9 f9 f9 f9 00 07 f9 f9
      0x0000800969f0: f9 f9 f9 f9 00 06 f9 f9 f9 f9 f9 f9 00 07 f9 f9
    Shadow byte legend (one shadow byte represents 8 application bytes):
      Addressable:           00
      Partially addressable: 01 02 03 04 05 06 07 
      Heap left redzone:       fa
      Freed heap region:       fd
      Stack left redzone:      f1
      Stack mid redzone:       f2
      Stack right redzone:     f3
      Stack after return:      f5
      Stack use after scope:   f8
      Global redzone:          f9
      Global init order:       f6
      Poisoned by user:        f7
      Container overflow:      fc
      Array cookie:            ac
      Intra object redzone:    bb
      ASan internal:           fe
      Left alloca redzone:     ca
      Right alloca redzone:    cb
      Shadow gap:              cc
    ==17071==ABORTING
    

    POC

    id_000000,sig_11,src_000000,time_784,op_havoc,rep_4.zip

    Any issue plz contact with me: [email protected] OR: twitter: @Asteriska8

    opened by Asteriska8 0
  • uart0-helloworld-sdboot: update prebuilt blob

    uart0-helloworld-sdboot: update prebuilt blob

    The prebuilt blob of uart0-helloworld-sdboot isn't updated for a long time.

    Update it with one built with 5cf618a21605 ("Merge pull request #180 from ChalesYu/a63-220729").

    Signed-off-by: Icenowy Zheng [email protected]

    opened by Icenowy 0
  • usb_bulk_send() ERROR -7: Operation timed out on H616

    usb_bulk_send() ERROR -7: Operation timed out on H616

    I bought a development board called MangoPi MQ-Quad It has H616 Soc and an empty SPI flash pad 1665290160684 1665290150271

    I tried to compile mainline uboot for it, but there was something wrong when I tried to boot from FEL.

    I used sun50i-h616-orangepi-zero2 as template so DT name is sun50i-h616-orangepi-zero2

    $ sudo sunxi-tools/sunxi-fel ver
    AWUSBFEX soc=00001823(H616) 00000001 ver=0001 44 08 scratchpad=00007e00 00000000 00000000l
    
    $ sudo sunxi-tools/sunxi-fel -v uboot u-boot-sunxi-with-spl.bin
    found DT name in SPL header: sun50i-h616-orangepi-zero2
    Stack pointers: sp_irq=0x00021400, sp=0x00053FD4
    MMU is not enabled by BROM
    => Executing the SPL... done.
    usb_bulk_send() ERROR -7: Operation timed out
    

    and the serial output

    U-Boot SPL 2022.10-00409-g2afa989fbe-dirty (Oct 07 2022 - 23:37:55 +0800)
    pmic id is 0x4b
    DRAM: 1024 MiB
    Trying to boot from FEL
    

    and then It stuck, no more output, sunxi-fel can't recognize fel device, I have to plug USB again. To make sure it wasn't the compiled uboot that was the problem, I used someone else's compiled uboot.

    $ sudo ../sunxi-tools/sunxi-fel -v uboot u-boot-sunxi-with-spl-armbian.bin
    found DT name in SPL header: sun50i-h616-mangopi-mcore
    Stack pointers: sp_irq=0x00021400, sp=0x00053FD4
    MMU is not enabled by BROM
    => Executing the SPL... done.
    usb_bulk_send() ERROR -7: Operation timed out
    

    still stuck:

    U-Boot SPL 2021.10-00409-armbian-dirty (Sep 29 2022 - 17:22:28 +0800)
    pmic id is 0x4b
    DRAM: 1024 MiB
    Trying to boot from FEL
    

    I also made some other attempts to try to solve the problem, including:

    • downgrade my binutils (binutils 2.39 has some rwx-segment warning, I have to modify Makefile to compile ATF and uboot)
    • connect my board to a USB2.0 Hub (my laptop all USB ports are USB3.0)
    • change USB_TIMEOUT in fel-lib.c from 10s to 60s
    • change AW_USB_MAX_BULK_SEND in fel-lib.c from 512KiB to 128KiB (#162 )
    • replace another USB Cable

    however, it still stuck at "Trying to boot from FEL".

    #162 also Mentioned with the installation source but my sunxi-tools is git clone from this repository. I also tried AUR pakage: sunxi-tools-git, still not solved.

    https://github.com/Thore-Krug/Flash-CHIP/issues/21 Mentioned downgrade sunxi-tools. This is obviously not appropriate for a new model like H616.

    opened by nyatorch 3
  • Fit image introduction breaks building for windows

    Fit image introduction breaks building for windows

    Hi, I'm able to compile and run sunxi-fel on 32bit windows including commit #5541673db88f7a0182738e514665eb908738387a After that, with the fit image support merge i cant compile anymore. Compiler has issues with fit_image.c and some libfdt references:

    fit_image.c: undefined reference to fdt_getprop fdt_get_property fdt_path_offset fdt_subnode_offset fdt_get_property fdt_path_offset fdt_first_subnode fdt_get_property fdt_next_subnode fdt_get_property fdt_first_subnode fdt_subnode_offset fdt_get_property

    Any advice on how to solve this? I'm compiling with mingw-w32 under linux and with msys2 also under windows. same results.

    opened by sgufa 3
Releases(v1.4)
  • v1.4(Oct 26, 2016)

    A summary of the most significant changes since v1.3:

    • We've been build-testing successfully on Travis CI for quite a while now, including automated checking of new pull requests.
    • sunxi-fel has received many fixes, and gained several new features: progress indicator, some new commands, and recently the ability to affect the U-Boot environment (variables).
    • Some bugfixes were made in the .fex utilities (sunxi-fexc/bin2fex/fex2bin).
    • @ssvb implemented a UART "hello world" program that can serve as an example for "bare metal" programming of Allwinner SoCs.
    • A sunxi-nand-image-builder utility by @bbrezillon to prepare "raw" NAND images.

    A complete list of changes (excluding merge commits) since v1.3:

    Bernhard Nortmann (58):
          fel: Introduce progress framework
          fel: refactor aw_fel_write()
          fel: extend usb_bulk_send() for progress updates
          fel: implement simple progress bar for larger transfers
          fel: extend progress display with transfer rate and ETA
          fel: Add file_size() and factor out a reusable file_upload()
          fel: implement "write-with-progress" and "multiwrite"
          fel: support FEL progress gauge via dialog utility
          fel: support updating the caption for "dialog --gauge"
          fel: bugfix - revert autostart change from d99d59c
          fel: unify handling of "prefix"-type command line arguments
          fel: fix memory leak, properly shut down USB library
          fel: support selection of specific USB bus and device number
          fel: Do a clean exit(0) after printing usage help
          fel: Simplify hexdump() single character output, using putchar()
          fel: Use initializers for aw_usb_request and aw_fel_request
          fel: Remove surplus colons on perror() messages
          fexc: Improve script_decompile_bin() safeguards
          fexc: Regroup code in script_decompile_bin()
          fel: Fix a possible format/conversion error in aw_write_buffer()
          fel: Convert "needs_l2en" to boolean type
          Add Travis CI configuration file
          fel: Introduce helper function for reporting libusb errors
          Replace endian_compat.h with portable_endian.h
          Makefile: Have portable_endian.h properly expose all functions
          nand-part: Avoid Linux-only ioctl() on other platforms
          Rename README to display it as markdown
          Some markdown formatting for proper display of README.md
          travis-ci: Extend build matrix, disable email notifications
          Move list declarations from common.h into a separate list.h
          Get rid of two "unused parameter" warnings
          fexc: Clarify intent of opt_string adjustment
          Makefile: Provide a way to pass explicit _NETBSD_SOURCE
          README: Improve on (markdown) formatting
          phoenix_info: avoid -Wsometimes-uninitialized compiler warning
          fel: Avoid -Wunused-variable (iface_detached) on non-Linux platforms
          fel: Silence possible compiler warnings on "end of table" markers
          travis-ci: Be more strict on build checks
          fel: Add "readl" and "writel" commands
          fel: add "sid" command to print SID (128-bit key) on supported SoCs
          Makefile: Add "binfiles" target and simplify rule sets
          fel: Cosmetic fixes
          fexc: Don't fail silently on parse error
          fexc: Fix thinko in script decompiler
          fexc: More relaxed version data check in script_bin.c
          fexc: Warn when decompiling a malformed section entry (key string)
          fexc: Ignore lines starting with ':' when compiling .fex
          fel: Implement "reset64" command to force warm reset into AArch64
          fel-sdboot: Fix header corruption workaround, implement in assembly
          Add support for auto-updated version information
          fel: bugfix: aw_fel_writel_n() transfers need to do endian conversion
          Convert license file to Markdown syntax
          Some minor adjustments in README.md
          fel: Add the ability to pass uEnv-style data via FEL (#60)
          Have programs display version information in their usage help
          Add a release (version) badge to README.md
          fel: Minor fixup - rename "progress" to "callback" for clarity
          Prepare release v1.4
    Boris Brezillon (5):
          Add a tool to generate raw NAND images
          nand-image-builder: Fix the copyright header
          nand-image-builder: Add error messages to check_image_info()
          nand-image-builder: Rework the help context
          nand-image-builder: Fix --help/-h option
    Emmanuel Vadot (1):
          Fix building on FreeBSD
    Hans de Goede (1):
          script_extractor: Remove unnecessary size argument
    Jens Kuske (2):
          fel: only read MMU control registers if MMU is enabled
          fel: add fel spl support for Allwinner A80
    Justin Swartz (2):
          Makefile: Add sunxi-script_extractor target
          README: Cross-compilation examples
    Lourens Rozema (1):
          fel: Add release USB interface to allow proper operation on Mac OS X.
    Siarhei Siamashka (12):
          fel: Helper functions for reading/writing ARM coprocessor registers
          fel: Support for enabling MMU after running SPL on new SoC variants
          fel: Enable MMU on Allwinner-H3 to improve FEL transfer speed
          fel: Move the temporary scratch buffer under the IRQ stack
          Fix compatibility with Linaro toolchains for building ARM binaries
          fel: Move backup area to higher addresses in SRAM on A10/A13/A20
          fel: Rename the backup buffers which use AR100 (OpenRISC) SRAM
          fel: Move the backup storage to the SRAM B on A31
          fel: Move the backup storage to the SRAM section A1 on H3
          fel-sdboot.sunxi: Add support for A64 and A80
          fel: Add fel spl command support for Allwinner A64
          Add new uart0-helloworld-sdboot.sunxi bootable test image
    howientc (1):
          fel: Improve file_upload() when no progress callback is passed
    
    Source code(tar.gz)
    Source code(zip)
  • v1.3(Nov 20, 2015)

    A summary of the most significant changes since v1.2:

    • The command line tools got "sunxi-" prefix to match the renames already done by Debian and Fedora sunxi-tools packagers.
    • Added support for new "spl" and "uboot" commands in the "sunxi-fel" tool, which allow booting standard U-Boot images over USB. More information and detailed instructions can be found at http://linux-sunxi.org/FEL/USBBoot
    • Added a new meminfo tool (based on https://github.com/maxnet/a10-meminfo from @maxnet). It allows to retrieve the information about the DRAM controller configuration when run on Allwinner devices.

    A complete list of changes since v1.2:

    Andrey Kosteltsev (1):
          fixed issue #29: bad if test?
    Bartosz J (1):
          Fix issue #25: - Omit SCRIPT_VALUE_TYPE_NULL entries with no key name
    Bernhard Nortmann (10):
          sunxi-tools: extend fel utility to handle SPL + U-Boot binary
          sunxi-tools: prevent possible out-of-bounds memory access
          sunxi-tools: make "uboot_autostart" local instead of global
          fel: fix typo
          fix compiler warnings due to deprecated _BSD_SOURCE
          fel: refactor image type detection/query
          fel: implement persistent sram_info information
          fel: add a mechanism to provide boot information via FEL
          sunxi-tools: some trivial fixes
          sunxi-tools: make use of proper boolean data types
    Chen-Yu Tsai (2):
          fel: Add A80 SoC ID
          fel: Detect FEL mode bulk transfer endpoint addresses at startup
    Floris Bos (1):
          meminfo: Initial upload
    Hans de Goede (1):
          Add fel spl support for A23
    Ian Campbell (6):
          Add copyright headers to various files.
          usb-boot: Trivial typo fix s/fint/find
          fel-to-spl-thunk.S: Only depend on binutils.
          Makefile: Prefix most tools with sunxi-
          Makefile: Split out target tools rules
          Makefile: Add an install rule
    Luc Verhaegen (18):
          fexc: add some sanity checking to bin reading
          meminfo: rename and add to build
          meminfo: fix up density calculation
          meminfo: rewrite /dev/mem handling
          meminfo: fix up printing
          meminfo: rewrite pll5 retrieval
          meminfo: rewrite dram parameter reading
          meminfo: various cleanups
          meminfo: read in soc version
          meminfo: fill in tpr4 on sun7i
          meminfo: (re-)introduce fex and usage printing
          meminfo: add a33 and a80 ids
          meminfo: make dram clock code more generic
          meminfo: make existing code sun4i specific
          meminfo: move sun4i code to its own function.
          meminfo: move soc version checking to main
          meminfo: increment clock n value for sun6i/8i
          meminfo: add sun6i register printing
    Oliver Schinagl (2):
          meminfo: do not assume Memory is always 24MHz * X
          meminfo: swap PLL1 TUN2 register to proper location
    Olliver Schinagl (3):
          Exclude sunxi-meminfo-static from git
          do not store backup files
          Very quick n dirty hack to get a script.bin from /dev/mem
    Peter Korsgaard (1):
          Makefile: use force option when creating symlinks
    Reinhard Max (1):
          Allow empty sections as found in the FEX files of Ippo q8h v1.2 and FSL S8
    Siarhei Siamashka (16):
          meminfo: fix 'dram_tpr3' reporting
          meminfo: fix 'dram_clk' reporting for frequencies that are not multiples of 24
          fel: Split 'aw_fel_get_version' into 'get' and 'print' variants
          fel: New command for loading U-Boot SPL binaries in eGON format
          fel: Add --verbose option and implement transfer speed reporting
          fel: Disable MMU to get more SRAM space and fix A13 problems
          fel: Faster USB transfers via 'fel write' to DRAM
          fel: Fix USB timeout on large transfers
          fel: Set the AUXCR L2EN bit for A10/A13
          README: Remove the obsolete 'usb-boot' script
          README: Add a brief 'script-extractor' tool description
          fel: Report FEL stack pointers
          fel: get rid of the FEL_EXEC_SCRATCH_AREA constant
          fel-to-spl-thunk.S: Fix safety guard which checks for enabled cache
          Makefile: 'fel' tool depends on fel-to-spl-thunk.h
          fel: Make the SPL load address configurable instead of hardcoded 0x0
    Vishnu Patekar (4):
          fel: Handle error and don't exit if MMU is not enabled.
          fel: add fel spl support for A33
          fel: add fel spl support for A83T
          fel: add fel spl support for H3
    
    Source code(tar.gz)
    Source code(zip)
Owner
Free/Open Source Software for Allwinner SoCs (A10/A13/A10s/A20/A31/...)
Free/Open Source Software for Allwinner SoCs (A10/A13/A10s/A20/A31/...)
The Vulkan Profiles Tools are a collection of tools delivered with the Vulkan SDK for Vulkan application developers to leverage Vulkan Profiles while developing a Vulkan application

Copyright © 2021-2022 LunarG, Inc. Vulkan Profiles Tools (BETA) The Vulkan Profiles Tools are a collection of tools delivered with the Vulkan SDK for

The Khronos Group 73 Dec 25, 2022
Quick reference on command line tools and techniques

1. Introduction 1.1. Scope 1.2. Background 1.3. Purpose 1.4. Next steps 2. Basics 2.1. Common commands 2.2. Shortcuts 2.2.1. Navigation 2.2.2. Editing

Utsav Barman 330 Dec 7, 2022
fx is a workspace tool manager. It allows you to create consistent, discoverable, language-neutral and developer friendly command line tools.

fx is a workspace tool manager. It allows you to create consistent, discoverable, language-neutral and developer friendly command line tools.

null 19 Aug 27, 2022
LiteX is a Migen/MiSoC based Core/SoC builder that provides the infrastructure to easily create Cores/SoCs (with or without CPU).

LiteX is a Migen/MiSoC based Core/SoC builder that provides the infrastructure to easily create Cores/SoCs (with or without CPU). The common components of a SoC are provided directly: Buses and Streams (Wishbone, AXI, Avalon-ST), Interconnect, Common cores (RAM, ROM, Timer, UART, etc...), CPU wrappers/integration, etc... and SoC creation capabilities can be greatly extended with the ecosystem of LiteX cores (DRAM, PCIe, Ethernet, SATA, etc...) that can be integrated/simulated/build easily with LiteX.

null 1.9k Jan 3, 2023
Allwinner V3S Opensource

KS_V3S • Bilibili Video Introduction:https://www.bilibili.com/video/BV17z4y1S7D6 I have designed this PCB, because the sheer power of this SoC, at ver

Kevincoooool 195 Dec 29, 2022
The demo projects for Allwinner D1 SBC

D1 Demo The demo projects for Allwinner D1 SBC hello project show the basic native compiling on D1 SBC. vector example cross compiling RISC-V Vector c

RVBoards 20 Oct 18, 2022
Port of MIT's xv6 OS to the Nezha RISC-V board with Allwinner D1 SoC

xv6 is a re-implementation of Dennis Ritchie's and Ken Thompson's Unix Version 6 (v6). xv6 loosely follows the structure and style of v6, but is impl

Michael Engel 62 Dec 12, 2022
Identify I2C devices from a database of the most popular I2C sensors and other devices

I2C Detective Identify I2C devices from a database of the most popular I2C sensors and other devices. For more information see http://www.technoblogy.

David Johnson-Davies 21 Nov 29, 2022
Suckless-tools - My fork of suckless tools.

suckless-tools Here is my fork of suckless tools. I didn't include tabbed, i was using but not actively. I am using xfce4-terminal instead of st. Beca

null 2 Jan 7, 2022
A collection of tools made by the nerds @ axial

Tools created by Nerds @ AXIAL Tool Name: Vichiti Author: 0x9747 Domain: Open-source Intelligence Tool Name: FLAMES Author: Devisha Rochlani Domain: M

AXIAL 16 Oct 31, 2021
sbase is a collection of unix tools that are inherently portable across UNIX and UNIX-like systems.

sbase is a collection of unix tools that are inherently portable across UNIX and UNIX-like systems.

Anton Samokhvalov 1 Nov 1, 2021
A collection of individual tools to randomize bdsp sheets

BDSP_Randomisers A collection of tools to randomize BDSP assets Setup (Windows 10 only) Install Ubuntu 18.04 via WSL1 (plenty of tutorials on that) In

null 6 Mar 1, 2022
An open collection of tools and experiments for rendering wide-gamut scene-linear data into an image for an SDR or HDR display device.

Open Display Transform An open collection of tools and experiments for rendering wide-gamut scene-linear data into an image for an SDR or HDR display

Jed Smith 127 Dec 29, 2022
Collection of tools to manage Teensy boards

You can find these instructions on the official web page. Overview TyTools is a collection of independent tools and you only need one executable to us

Niels Martignène 181 Dec 31, 2022
A collection of tools for Multiple Alignments of DNA, RNA, Protein Sequence

T-Coffee T-Coffee is a collection of tools for Computing, Evaluating and Manipulating Multiple Alignments of DNA, RNA, Protein Sequences and Structure

Notredame Lab 72 Dec 14, 2022
A Visual Studio extension containing a collection of tools to help contributing code to the Chromium project.

VsChromium VsChromium is a Visual Studio Extension containing a collection of tools useful for editing, navigating and debugging code. VsChromium was

The Chromium Project 258 Dec 30, 2022
A collection of tools, libraries, and tests for Vulkan shader compilation.

Shaderc A collection of tools, libraries and tests for shader compilation. At the moment it includes: glslc, a command line compiler for GLSL/HLSL to

Google 1.4k Dec 29, 2022
Lightweight C++ command line option parser

Release versions Note that master is generally a work in progress, and you probably want to use a tagged release version. Version 3 breaking changes I

null 3.4k Jan 4, 2023
The command line interface for Piccolo

Piccolo programming language A fun, easy to embed high-level programming language. This repo contains the code for the Piccolo CLI. The core Piccolo c

null 7 Feb 14, 2022