
On Tue, Dec 06, 2016 at 08:04:24AM +0000, André Przywara wrote:
On 05/12/16 21:56, Tom Rini wrote:
On Mon, Dec 05, 2016 at 01:52:10AM +0000, Andre Przywara wrote:
For boards that call s_init() when the SPL runs, we are expected to setup an early stack before calling this C function. Implement the proper AArch64 version of this based on the ARMv7 code. This allows sunxi boards to setup the basic peripherals even on with a 64-bit SPL.
Signed-off-by: Andre Przywara andre.przywara@arm.com
This is going to override lowlevel_init from arch/arm/cpu/armv8/start.S and is that really desired? Thanks!
Not sure if it is desired, but it's needed. The weak function in start.S just initialises the GIC (if configured), that looks like a NOP for sunxi to me (we do this already much better in ARM Trusted Firmware). For 32-bit sunxi we call s_init() through lowlevel_init(), which is what I copy here for armv8. Now there is this comment which discourages doing so and Alex already complained about it as well, so I might take a look at how we would skip this step. I was a bit wary going there as this would mean to rework the 32-bit code as well, which affects a lot of boards, which I can barely test here.
The path flow here on 32bit, both with and without SPL is what makes this area a good bit of a pain to make changes in.