[U-Boot] CONFIG_ARMV7_NONSEC on altera soc (alignment issues ?)

Albert ARIBAUD albert.u.boot at aribaud.net
Mon Apr 7 22:53:43 CEST 2014


Hi Tim,

On Wed, 26 Mar 2014 15:25:33 +0100, Tim Sander <tim at krieglstein.org>
wrote:

> Hi
> 
> I am currently trying to configure either Altera Soc and Xilinx Zynq to boot Linux in nonsecure-mode.
> This mail focusses on the Altera SOC.
> 
> As soon as the u-boot switched to normal mode it seems there is a problem with code alignment handling? 
> At least it seems the code which is running beforehand stops working in normal mode and stops in either
> data_abort or prefetch handler. It stopps working when it hits the call to
> stdio_devices[file]->puts(s); in console_puts (console.c:255).
> 
> print *stdio_devices[file]
> $2 = {flags = 16978471, ext = 16978464, 
> name = "$\022\003\001\202\022\003\001\360\031\003\001\020\060\220", <incomplete sequence \345>, 
>   start = 0xe92d4070, stop = 0xe2806010, putc = 0xe1530006, puts = 0xe1a04000, tstc = 0xe1a05001, 
>   getc = 0xe5810024, priv = 0x1a000007, list = { next = 0xe5831004, prev = 0xe5813000}}
> 
> As there are unaligned addresses (putc?) in these function calls i have the impression that this is not working in
> normal mode but in secure mode.
> 
> Unfortunatly i was not able to get the mainline u-boot to boot on the altera soc so i patched the altera release:
> git://git.rocketboards.org/u-boot-socfpga.git
> with the 1740999a39ea4217bf926002d10869c0d925a5dc aka socfpga_v2013.01.01-rel branch.
> 
> As the altera u-boot release socfpga_v2013.01.01-rel is to old to have the CONFIG_ARMV7_NONSEC patches
> i cherry-picked the following patches:
> d4296887544ddf95808bfb62f312008f519efb7b	extend non-secure switch to also go into HYP mode
> ba6a1698116da272f14c53a3ae41467cb7fc4372 	add SMP support for non-secure switch
> bb975455650b1f36681de31a93ffe54952ed3a6b 	trigger non-secure state switch during bootm execution
> 1ef923851ab8ffcc4265fd991815b88d9c1f12d7 	add C function to switch to non-secure state
> 16212b594f385bd594d5d316bf11b13c1186e3d7 	add assembly routine to switch to non-secure state
> 45b940d6f9a9d4989452ea67480e299bfa51ee19 	add secure monitor handler to switch to non-secure state
> d75ba503a972df09784f1a332ba356ef8b42a0a6 	ARM: prepare armv7.h to be included from assembly source
> 
> I also applied the attached hacked together patches to get the system running and fix up the stack pointer in 
> normal mode as it pointed to 0. 
> 
> Best regards
> Tim

So this is not a patch for mainline U-Boot, right?

Amicalement,
-- 
Albert.


More information about the U-Boot mailing list