- 29 Aug, 2015 1 commit
-
-
Bernhard Nortmann authored
This patch is to prevent the call to aw_fel_write_uboot_image() with insufficient file size. If a user passes a boot file smaller than 32K, e.g. on "fel spl sunxi-spl.bin", the expression (size - SPL_LEN_LIMIT) would end up negative, and causes a numeric underflow when passed to aw_fel_write_uboot_image() as "size_t len". This might incorrectly let that function assume a u-boot binary was passed, when actually it isn't supposed to act on the buffer at all. Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de> Acked-by: Siarhei Siamashka <siarhei.siamashka@gmail.com>
-
- 19 Aug, 2015 4 commits
-
-
Vishnu Patekar authored
Added fel spl support for H3. For H3 MMU is not enabled by BROM. This is tested on Orange Pi H3 Board. Reported-by: Cam Hutchison <camh@xdna.net> Signed-off-by: Vishnu Patekar <vishnupatekar0510@gmail.com> Tested-by: Cam Hutchison <camh@xdna.net> Acked-by: Siarhei Siamashka <siarhei.siamashka@gmail.com>
-
Vishnu Patekar authored
For A83T MMU is not enabled by BROM. U-boot SPL support is not yet added for A83T. tested using A33 u-boot binary. $fel spl u-boot-sunxi-with-spl.bin U-Boot SPL 2015.10-rc1-g1a8cf6d (Aug 17 2015 - 15:14:46) DRAM:Timeout initialising DRAM. it jumped to SPL and on serial it displayed above log from SPL. I'll try to add U-boot SPL support for A83T soon. Signed-off-by: Vishnu Patekar <vishnupatekar0510@gmail.com> Acked-by: Siarhei Siamashka <siarhei.siamashka@gmail.com>
-
Vishnu Patekar authored
Signed-off-by: Vishnu Patekar <vishnupatekar0510@gmail.com> Tested-by: Vishnu Patekar <vishnupatekar0510@gmail.com> Acked-by: Siarhei Siamashka <siarhei.siamashka@gmail.com>
-
Vishnu Patekar authored
On allwinner SOCs A33,H3, A83T MMU is not enabled by BROM, so don't exit if MMU is not enabled by BROM and return NULL. It was reported on A33 tablet and Orange Pi H3 Board. I've tested it on A33 tablet and A83T Dev Board by allwinner. Signed-off-by: VishnuPatekar <vishnupatekar0510@gmail.com> Acked-by: Siarhei Siamashka <siarhei.siamashka@gmail.com>
-
- 18 Aug, 2015 1 commit
-
-
Ian Campbell authored
A cross-binutils is generally a bit easier to get hold of, and in particular binutils-none-eabi (and binutils-arm-linux-gnueabi{,hf}) are available in Debian Jessie while the equivalent cross gcc is not. The only reason gcc/cpp are required are to strip the embedded Ruby code out before handing to the assembler, we can achieve the same by opening a multiline comment around the ruby instead. Care needs to be taken not to close the comment prematurely hence "*/" is written in the one place it is used as "\x2a/" (i.e. encoding the * in hex). Having done this we can pass the .S file directly to the cross-as. There is no change to the resulting header file. Signed-off-by: Ian Campbell <ijc@hellion.org.uk> Acked-by: Siarhei Siamashka <siarhei.siamashka@gmail.com>
-
- 01 Aug, 2015 1 commit
-
-
Bernhard Nortmann authored
A patch to extend the "fel spl" command to properly handle not only the SPL part of a combined u-boot-sunxi-with-spl.bin boot file, but additionally also transfer the main u-boot binary (image) contained within the second part of such files. This can simplify the boot process / steps required to get a proper FEL setup - e.g. it avoids having to select u-boot.bin vs. u-boot-dtb.bin, see e.g. http://lists.denx.de/pipermail/u-boot/2015-June/217476.html On top of that a new "fel uboot" command is introduced. As per suggestions on the mailing list, it will take such a combined (SPL + U-Boot) file and actually start U-Boot execution before the program exits. "uboot" may thus also be combined with other "write" commands to transfer additional files required for the boot (e.g. boot script, kernel, initrd). Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de> Acked-by: Siarhei Siamashka <siarhei.siamashka@gmail.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-
- 26 Feb, 2015 6 commits
-
-
Hans de Goede authored
Signed-off-by: Hans de Goede <hdegoede@redhat.com> Acked-by: Siarhei Siamashka <siarhei.siamashka@gmail.com>
-
Siarhei Siamashka authored
This is needed to have feature parity with the normal boot mode, where the L2EN bit in the CP15 Auxiliary Control Register is set by the BROM code right from the start. And if L2EN is not set, then the Linux system ends up booted with the L2 cache disabled. According to the Cortex-A8 TRM, the L2 cache is only enabled when both L2EN bit and the C bit from the CP15 Control Register c1 are set. Because the BROM does not set the C bit, this change should not affect the functionality of the FEL mode in any way. Signed-off-by: Siarhei Siamashka <siarhei.siamashka@gmail.com> Acked-by: Hans de Goede <hdegoede@redhat.com>
-
Siarhei Siamashka authored
Trying to use oversized initrd files (20 MB or more) can fail with the "libusb usb_bulk_send error -1" error message. To address this problem, we can split the transfer into smaller chunks and the problem disappears. Effectively, this is a revert of the older "fel: Increase timeout to 60 seconds instead of splitting bulk transfers" commmit. Signed-off-by: Siarhei Siamashka <siarhei.siamashka@gmail.com> Acked-by: Hans de Goede <hdegoede@redhat.com>
-
Siarhei Siamashka authored
By adjusting the MMU translation table before restoring it and by enabling the I-cache with branch prediction, we can improve performance. The DRAM area (0x40000000-0xC0000000) becomes write-combine mapped and the BROM code becomes mapped as cacheable memory. This is expected to be safe and should not cause any coherency problems. Transfer speed improvements: A10 : ~330 KB/s -> ~600 KB/s A13 : ~330 KB/s -> ~600 KB/s A20 : ~320 KB/s -> ~960 KB/s A31s : ~250 KB/s -> ~510 KB/s Signed-off-by: Siarhei Siamashka <siarhei.siamashka@gmail.com> Acked-by: Hans de Goede <hdegoede@redhat.com>
-
Siarhei Siamashka authored
The FEL BROM code has the MMU enabled for some reason (while I-cache and D-cache are disabled). Most likely the intention was to get a somewhat better performance. Everything is mapped as TEXCB=00000 (strongly ordered), except for the 0x00000000 (SRAM) and 0xFFF00000 (BROM) sections, which are mapped as TEXCB=00100 (normal uncached memory). This becomes a problem for the A13 SoC, because it has less SRAM than the other chips. A13 stores the MMU addresses translation table at 0x8000 and uses up 16 KiB of the SRAM space there (while the A10, A20 and A31s keep the MMU table in the secure SRAM at 0x20000). And because the 'spl' command needs space for backing up the FEL stacks, it was clashing with the MMU table. The solution is simple. We just backup the addresses translation table and disable the MMU before running the SPL. And then restore it back to the original state. This fixes problems on A13. Re-enabling the MMU in the end is only necessary to avoid performance losses. For example, the transfer speed of the 'fel write' command on A20 would drop from ~320 KB/s to ~260 KB/s without MMU. Signed-off-by: Siarhei Siamashka <siarhei.siamashka@gmail.com> Acked-by: Hans de Goede <hdegoede@redhat.com>
-
Siarhei Siamashka authored
This allows to measure the USB data transfer speed for performance tuning purposes. Signed-off-by: Siarhei Siamashka <siarhei.siamashka@gmail.com> Acked-by: Hans de Goede <hdegoede@redhat.com>
-
- 11 Feb, 2015 2 commits
-
-
Siarhei Siamashka authored
Now it is possible to load and execute the same U-Boot SPL, as used for booting from SD cards. Just a different delivery method (a USB OTG cable instead of an SD card) for handling exactly the same content. The only argument for this new command is the name of the SPL binary file (with a eGON header generated by the 'mksunxiboot' tool). Now the 'fel' tool can be run as: fel spl u-boot-sunxi-with-spl.bin Before this change, the SPL was only able to use the memory between addresses 0x2000 and ~0x5D00, totalling to something like ~15 KiB. This is the biggest contiguous area in SRAM, which is not used by the FEL code from the BROM. Unfortunately, it is rather small. And also the unusual starting offset was making it difficult to use the same SPL binary for booting from the SD card and via FEL. There are surely more unused parts of SRAM, but they are scattered across multiple locations, primarily because the FEL code from the BROM sets up two stacks at inconvenient locations (the IRQ handler stack at 0x2000, and a regular stack at 0x7000). Essentially, the problem to solve here is to ensure a sufficiently large and consistent SRAM address space for the SPL without any potentially SoC specific holes in the case of booting over USB via FEL. This is achieved by injecting special entry/exit thunk code, which is moving the data in SRAM to provide a contiguous space for the SPL at the beginning of SRAM, while still preserving the the data from the BROM elsewhere. When the SPL tries to return control back to the FEL code in the BROM, the thunk code moves the data back to its original place. Additionally, the eGON checksum is verified to ensure that no data corruption has happened due to some unexpected clash with the FEL protocol code from the BROM. So the thunk code takes care of the address space allocation uglyness and provides the U-Boot SPL with a somewhat nicer abstraction. Now the FEL booted SPL on A10/A13/A20/A31 can use up to 32 KiB of SRAM because the BROM data is saved to different SRAM section. There is also generic code, which does not rely on extra SRAM sections, but just glues together the unused free space from both BROM FEL stacks to provide something like ~21 KiB to the SPL. Signed-off-by: Siarhei Siamashka <siarhei.siamashka@gmail.com> Acked-by: Hans de Goede <hdegoede@redhat.com>
-
Siarhei Siamashka authored
Now aw_fel_get_version() can get the SoC ID for internal usage from the other functions. And aw_fel_print_version() is used to print the formatted string to stdout. Signed-off-by: Siarhei Siamashka <siarhei.siamashka@gmail.com> Acked-by: Hans de Goede <hdegoede@redhat.com>
-
- 24 Jan, 2015 3 commits
-
-
Olliver Schinagl authored
Signed-off-by: Olliver Schinagl <o.schinagl@ultimaker.com>
-
Olliver Schinagl authored
Signed-off-by: Olliver Schinagl <o.schinagl@ultimaker.com>
-
Olliver Schinagl authored
Signed-off-by: Olliver Schinagl <o.schinagl@ultimaker.com>
-
- 28 Oct, 2014 1 commit
-
-
Reinhard Max authored
Signed-off-by: Henrik Nordstrom <henrik@henriknordstrom.net>
-
- 27 Sep, 2014 1 commit
-
-
Bartosz J authored
-
- 21 Sep, 2014 2 commits
-
-
Chen-Yu Tsai authored
FEL mode on the A80 changed the bulk transfer endpoint. Let the fel utility look for the endpoint addresses instead of hard-coding them. Signed-off-by: Chen-Yu Tsai <wens@csie.org> Signed-off-by: Henrik Nordstrom <henrik@henriknordstrom.net>
-
Chen-Yu Tsai authored
Signed-off-by: Chen-Yu Tsai <wens@csie.org> Signed-off-by: Henrik Nordstrom <henrik@henriknordstrom.net>
-
- 06 Sep, 2014 7 commits
-
-
Luc Verhaegen authored
Since we lack enough information to get parameters. Signed-off-by: Luc Verhaegen <libv@skynet.be> Acked-by: Chen-Yu Tsai <wens@csie.org>
-
Luc Verhaegen authored
Signed-off-by: Luc Verhaegen <libv@skynet.be> Acked-by: Chen-Yu Tsai <wens@csie.org>
-
Luc Verhaegen authored
Signed-off-by: Luc Verhaegen <libv@skynet.be> Acked-by: Chen-Yu Tsai <wens@csie.org>
-
Luc Verhaegen authored
Signed-off-by: Luc Verhaegen <libv@skynet.be> Acked-by: Chen-Yu Tsai <wens@csie.org>
-
Luc Verhaegen authored
Signed-off-by: Luc Verhaegen <libv@skynet.be> Acked-by: Chen-Yu Tsai <wens@csie.org>
-
Luc Verhaegen authored
Signed-off-by: Luc Verhaegen <libv@skynet.be> Acked-by: Chen-Yu Tsai <wens@csie.org>
-
Luc Verhaegen authored
Signed-off-by: Luc Verhaegen <libv@skynet.be> Acked-by: Chen-Yu Tsai <wens@csie.org>
-
- 02 Sep, 2014 3 commits
-
-
Luc Verhaegen authored
Triggered by command line arguments. Signed-off-by: Luc Verhaegen <libv@skynet.be>
-
Luc Verhaegen authored
Signed-off-by: Luc Verhaegen <libv@skynet.be>
-
Luc Verhaegen authored
And bail if it fails to match anything we support. Signed-off-by: Luc Verhaegen <libv@skynet.be>
-
- 19 Aug, 2014 4 commits
-
-
Luc Verhaegen authored
No functional changes. Signed-off-by: Luc Verhaegen <libv@skynet.be>
-
Luc Verhaegen authored
Signed-off-by: Luc Verhaegen <libv@skynet.be>
-
Luc Verhaegen authored
Signed-off-by: Luc Verhaegen <libv@skynet.be>
-
Luc Verhaegen authored
Now we write out a dram file for u-boot directly. Signed-off-by: Luc Verhaegen <libv@skynet.be>
-
- 18 Aug, 2014 1 commit
-
-
Luc Verhaegen authored
Signed-off-by: Luc Verhaegen <libv@skynet.be>
-
- 16 Aug, 2014 1 commit
-
-
Luc Verhaegen authored
Signed-off-by: Luc Verhaegen <libv@skynet.be>
-
- 14 Aug, 2014 2 commits
-
-
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>
-
Siarhei Siamashka authored
The K and M factors encode values 1-4 in two bits (starting from 1 and not 0). The typical DRAM clock frequency setup uses K=2 and M=2, which means that both of them are read as 1 from the bit fields. That's why a10-meminfo used to work in most cases (1/1 is the same as 2/2). However a10-meminfo happens to report wrong 'dram_clk' if the other values of K and M are selected. This patch fixes it.
-