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>
This small bootable stub, which just passes control to the
FEL code in the BROM, needs to be adjusted to also support
Allwinner A64 and Allwinner A80 because the BROM is located
at a different address there.
The SD card boot has a very low priority on Allwinner A64, but
it at least has a higher priority than the SPI NOR Flash:
https://linux-sunxi.org/BROM#A64
So this patch may help to simplify the FEL mode activation on
devices, which are booting their firmware from the SPI NOR Flash.
Changes in v2:
- Use SCTLR.V to detect the exception vectors location as
suggested by Jens Kuske.
- Add a padding of 32 NOP instructions in the beginning as
a workaround for some strange failures.
Signed-off-by: Siarhei Siamashka <siarhei.siamashka@gmail.com>
They were all built with no version information so it's not trivial
to tell which sources they are built from.
It is very easy to rebuild u-boot which gives these. Not really a need
to have them prebuilt here.