[U-Boot] [PATCH V3 05/11] ARM: OMAP: Change set_pl310_ctrl_reg to be generic

Nishanth Menon nm at ti.com
Tue Mar 3 18:54:44 CET 2015


On 03/03/2015 11:12 AM, Nishanth Menon wrote:
> On 03/03/2015 11:08 AM, Tom Rini wrote:
>> 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 <nm at 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.
>>
> And we dont care about: -march=armv5 any-longer?
> 

:( replacing this - causes build breakage:

> Building omap3_overo board...
> arch/arm/cpu/armv7/omap-common/lowlevel_init.S:34: Error: selected processor does not support ARM mode `smc #0'
> make[2]: *** [arch/arm/cpu/armv7/omap-common/lowlevel_init.o] Error 1
> make[1]: *** [arch/arm/cpu/armv7/omap-common] Error 2
> make: *** [arch/arm/cpu/armv7] Error 2
> arch/arm/cpu/armv7/omap-common/lowlevel_init.S: Assembler messages:
> arch/arm/cpu/armv7/omap-common/lowlevel_init.S:34: Error: selected processor does not support ARM mode `smc #0'
> make[2]: *** [arch/arm/cpu/armv7/omap-common/lowlevel_init.o] Error 1
> make[2]: *** Waiting for unfinished jobs....
> make[1]: *** [arch/arm/cpu/armv7/omap-common] Error 2
> make: *** [arch/arm/cpu/armv7] Error 2
> make: *** Waiting for unfinished jobs....

I will retain the hand assembled value for now, if that is ok?

-- 
Regards,
Nishanth Menon


More information about the U-Boot mailing list