- 01 Dec, 2016 3 commits
-
-
NiteHawk authored
Make use of FEL library to implement device enumeration and selection by SID
-
Bernhard Nortmann authored
Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
-
Bernhard Nortmann authored
"./sunxi-fel --list" enumerates Allwinner USB devices that are in FEL mode. For each device detected, the SoC name/ID and - if available - the SID key will be printed to stdout. The utility then exits with status code 0 (upon success), or 1 if no devices were found. The current implementation treats the list feature as an option, to be able to handle it *before* the first attempt to call feldev_open() - which could fail (with no FEL devices connected). However, a "list" alias is available for users who expect this to be 'command' syntax, so "./sunxi-fel list" works too. Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
-
- 29 Nov, 2016 16 commits
-
-
Bernhard Nortmann authored
Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
-
Bernhard Nortmann authored
open_fel_device() will automatically provide this member field, based on the SoC ID from FEL/BROM version data. The field will either receive a human-readable identifier, or the ID in 4-digit hexadecimal representation (for unknown SoCs). Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
-
Bernhard Nortmann authored
Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
-
Bernhard Nortmann authored
The feldev_handle struct returned by feldev_open() will now contain this additional data, so the main application no longer needs to care about retrieving that. aw_fel_get_version() has thus become a static (= 'private') function. Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
-
Bernhard Nortmann authored
Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
-
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>
-
Bernhard Nortmann authored
This moves claiming / releasing the interface into the respective "open" / "close" functions. The USB code in main() is now trimmed down to: feldev_init(); handle = open_fel_device(...); feldev_done(handle); Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
-
Bernhard Nortmann authored
We move USB endpoint detection into the feldev_claim() routine, so higher level code is no longer involved with that. Also make use of the "detached" flag within feldev_handle, instead of relying on an isolated variable. Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
-
Bernhard Nortmann authored
This enables us to move forward to a cleaner implementation, where the "core" fel.c code will become independent of direct libusb usage. After moving USB code to a separate module, in the end the libusb handle could become an 'opaque' field of feldev_handle. The "device" handle might also be extended later, to provide (FEL) version data and SoC-specific information (chip ID, SRAM info, human-readable name). Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
-
Bernhard Nortmann authored
-
Bernhard Nortmann authored
Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
-
Bernhard Nortmann authored
See pull requests #59 and #83. It looks like various BSD derivates have adopted the more common naming conventions for the endian conversion macros, which means that we would attempt to redefine them without need (potentially even to 'historic' names that no longer exist). Try to avoid this by properly checking for existing functions first. Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
-
Chen-Yu Tsai authored
The SID block in the A80 is at 0x01c0e000, with the e-fuses we care about at offset 0x200 within the block. Signed-off-by: Chen-Yu Tsai <wens@csie.org>
-
Siarhei Siamashka authored
R40 support for fel and uart0-helloworld
-
Chen-Yu Tsai authored
The R40 is the same as the A20 for all intents and purposes of uart0-helloworld. Add R40's SOC ID. Signed-off-by: Chen-Yu Tsai <wens@csie.org>
-
Chen-Yu Tsai authored
The R40 is marketed as the successor to the A20. The SRAM layout is the same as the A20, but there doesn't seem to be a secure SRAM block. The SID block is at a completely different address. The layout is the same as the newer SoCs, with the e-fuses at an offset of 0x200. Signed-off-by: Chen-Yu Tsai <wens@csie.org>
-
- 19 Nov, 2016 2 commits
-
-
Bernhard Nortmann authored
These functions solve the problem that large readl/writel transfers might be limited by insufficient (scratch) buffer size. To solve this, chunks of no more than LCODE_MAX_WORDS get transferred individually. Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
-
Bernhard Nortmann authored
This patch reduces on FEL protocol overhead for the 'multiple' readl/writel transfers (functions that do word-aligned memory access on the SoC). The ARM "scratch" code now takes a word count and is able to work with buffered data, so the host is no longer required to transfer single words in a piecemeal fashion. Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
-
- 16 Nov, 2016 2 commits
-
-
Bernhard Nortmann authored
Besides having fewer lines of code, the #define macros should also prevent users from accidentally using these names without braces (i.e. as function pointers). Instead, this will cause compiler errors now. soc_info.c: add "A10s" label in comment for SoC ID 0x1625. Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
-
Bernhard Nortmann authored
Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
-
- 13 Nov, 2016 4 commits
-
-
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>
-
Bernhard Nortmann authored
Nowadays the term "hacking" has gained increasinly negative connotations. We don't want people to get a wrong impression and/or fancy ideas, so remove it. While at it, also get rid of the emphasis on A10. Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
-
Bernhard Nortmann authored
Otherwise we could run into ambiguities with "long long", and Windows compilation is likely to bail out as it might not understand "%ll". Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
-
NiteHawk authored
Extend continous integration by adding tests framework
-
- 12 Nov, 2016 5 commits
-
-
Bernhard Nortmann authored
Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
-
Bernhard Nortmann authored
This patch adds shell scripts that deliberately go through some extra program invocations, e.g. erroneous use of fex2bin. The goal of these test cases is to improve on code (branch) coverage. Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
-
Bernhard Nortmann authored
After all .fex files can be successfully compiled, let's also test the opposite direction by decompiling the resulting .bin. The output then has to pass an automated diff against the source .fex (transformed via some preprocessing with "unify-fex"). Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
-
Bernhard Nortmann authored
Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
-
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>
-
- 11 Nov, 2016 5 commits
-
-
Bernhard Nortmann authored
The previous timeout of 60 seconds was mostly based on scenarios where large ("write") transfers take place. But it could easily become annoying if users are awaiting completion of simpler commands like "read" or "hexdump", and for some reason FEL fails to respond. Therefore I've decided to lower the timeout value to 10 seconds, adjust the maximum chunk size accordingly and - while at it - improve the source comments documenting their relationship. Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
-
NiteHawk authored
Add initial H5 support in sunxi-fel and uart0-helloworld-sdboot.sunxi
-
NiteHawk authored
fexc: Fix .bin header treatment, improve .fex parser
-
Bernhard Nortmann authored
Vendor-provided .fex files have repeatedly shown key-value pairs (assignments) where the value is an identifier-style string *not* surrounded by double quotes. The corresponding .bin files confirm that such values end up as "string" type entries. So far, our .fex parser has choked on these values. The commit changes this behavior and treats them as strings now, to allow processing 'original' .fex without adjustments. Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
-
Icenowy Zheng authored
Signed-off-by: Icenowy Zheng <icenowy@aosc.xyz> Reviewed-by: Bernhard Nortmann <bernhard.nortmann@web.de>
-
- 10 Nov, 2016 3 commits
-
-
Icenowy Zheng authored
Signed-off-by: Icenowy Zheng <icenowy@aosc.xyz> Reviewed-by: Bernhard Nortmann <bernhard.nortmann@web.de>
-
Bernhard Nortmann authored
Vendor-provided .bin files have repeatedly demonstrated that our previous interpretation of this field as version[0] is likely wrong. Instead, it seems to represent the file size (in bytes) of the .bin file. This commit fixes both decompilation (and header checks) and generation of .bin files, where it will now store the size to this field. TODO: It's unclear whether the 'filesize' needs some specific alignment (and the .bin corresponding padding). A value of 34864 (0x8830) has already been observed, so any possible alignment is expected not to exceed 16 bytes (0x10). (Currently our .bin generator doesn't care about any specific alignment.) Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
-
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>
-