On Wed, Feb 25, 2015 at 02:55:13PM -0600, Nishanth Menon wrote: > set_pl310_ctrl_reg does use the Secure Monitor Call (SMC) to setup > PL310 control register, however, that is something that is generic > enough to be used for OMAP5 generation of processors as well. The > only difference being the service being invoked for the function. > > So, convert the service to a macro and use a generic name (same as > that used in Linux for some consistency). While at that, also add > a data barrier which is necessary as per recommendation. > > Signed-off-by: Nishanth Menon <n...@ti.com> > --- > arch/arm/cpu/armv7/omap-common/lowlevel_init.S | 13 ++++++++----- > arch/arm/cpu/armv7/omap4/hwinit.c | 4 ++-- > arch/arm/include/asm/arch-omap4/sys_proto.h | 5 ++++- > 3 files changed, 14 insertions(+), 8 deletions(-) > > diff --git a/arch/arm/cpu/armv7/omap-common/lowlevel_init.S > b/arch/arm/cpu/armv7/omap-common/lowlevel_init.S > index 86c0e4217478..9b24369e4dc1 100644 > --- a/arch/arm/cpu/armv7/omap-common/lowlevel_init.S > +++ b/arch/arm/cpu/armv7/omap-common/lowlevel_init.S > @@ -22,11 +22,14 @@ ENTRY(save_boot_params) > bx lr > ENDPROC(save_boot_params) > > -ENTRY(set_pl310_ctrl_reg) > - PUSH {r4-r11, lr} @ save registers - ROM code may pollute > +ENTRY(omap_smc1) > + PUSH {r4-r12, lr} @ save registers - ROM code may pollute > @ our registers > - LDR r12, =0x102 @ Set PL310 control register - value in R0 > + MOV r12, r0 @ Service > + MOV r0, r1 @ Argument > + DSB > + DMB > .word 0xe1600070 @ SMC #0 - hand assembled because -march=armv5 > @ call ROM Code API to set control register
Lets stop hand-crafting that call, we just call smc #0 elsewhere in the code base these days. -- Tom
signature.asc
Description: Digital signature
_______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot