linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Re: [PATCH v4 1/2] ARM: OMAP: Add secure function omap_smc3() which calling instruction smc #1
@ 2013-09-16 17:10 Dave Martin
  2013-09-17 15:43 ` Tony Lindgren
  0 siblings, 1 reply; 9+ messages in thread
From: Dave Martin @ 2013-09-16 17:10 UTC (permalink / raw)
  To: Pali Rohár
  Cc: tony,
	Ивайло
	Димитров,
	nm, linux, aaro.koskinen, pdeschrijver, linux-kernel,
	santosh.shilimkar, pavel, linux-omap, linux-arm-kernel

On Sat, Sep 14, 2013 at 10:37:12AM +0100, Pali Rohár wrote:
> On Sunday 08 September 2013 09:43:29 Pali Rohár wrote:
> > Here is new version (v4) of omap secure part patch:
> > 
> > Other secure functions omap_smc1() and omap_smc2() calling
> > instruction smc #0 but Nokia RX-51 board needs to call smc #1
> > for PPA access.
> > 
> > Signed-off-by: Ivaylo Dimitrov <freemangordon@abv.bg>
> > Signed-off-by: Pali Rohár <pali.rohar@gmail.com>
> > ---
> > diff --git a/arch/arm/mach-omap2/omap-secure.h
> > b/arch/arm/mach-omap2/omap-secure.h index 0e72917..c4586f4
> > 100644
> > --- a/arch/arm/mach-omap2/omap-secure.h
> > +++ b/arch/arm/mach-omap2/omap-secure.h
> > @@ -51,6 +51,7 @@
> >  extern u32 omap_secure_dispatcher(u32 idx, u32 flag, u32
> > nargs, u32 arg1, u32 arg2, u32 arg3, u32 arg4);
> >  extern u32 omap_smc2(u32 id, u32 falg, u32 pargs);
> > +extern u32 omap_smc3(u32 id, u32 process, u32 flag, u32
> > pargs); extern phys_addr_t
> > omap_secure_ram_mempool_base(void); extern int
> > omap_secure_ram_reserve_memblock(void);
> > 
> > diff --git a/arch/arm/mach-omap2/omap-smc.S
> > b/arch/arm/mach-omap2/omap-smc.S index f6441c1..fd90125
> > 100644
> > --- a/arch/arm/mach-omap2/omap-smc.S
> > +++ b/arch/arm/mach-omap2/omap-smc.S
> > @@ -1,9 +1,11 @@
> >  /*
> > - * OMAP44xx secure APIs file.
> > + * OMAP34xx and OMAP44xx secure APIs file.
> >   *
> >   * Copyright (C) 2010 Texas Instruments, Inc.
> >   * Written by Santosh Shilimkar <santosh.shilimkar@ti.com>
> >   *
> > + * Copyright (C) 2012 Ivaylo Dimitrov <freemangordon@abv.bg>
> > + * Copyright (C) 2013 Pali Rohár <pali.rohar@gmail.com>
> >   *
> >   * This program is free software,you can redistribute it
> > and/or modify * it under the terms of the GNU General Public
> > License version 2 as @@ -54,6 +56,23 @@ ENTRY(omap_smc2)
> >  	ldmfd   sp!, {r4-r12, pc}
> >  ENDPROC(omap_smc2)
> > 
> > +/**
> > + * u32 omap_smc3(u32 service_id, u32 process_id, u32 flag,
> > u32 pargs) + * Low level common routine for secure HAL and
> > PPA APIs via smc #1 + * r0 - @service_id: Secure Service ID
> > + * r1 - @process_id: Process ID
> > + * r2 - @flag: Flag to indicate the criticality of operation
> > + * r3 - @pargs: Physical address of parameter list
> > + */
> > +ENTRY(omap_smc3)
> > +	stmfd	sp!, {r4-r11, lr}
> > +	mov	r12, r0		@ Copy the secure service ID
> > +	mov	r6, #0xff	@ Indicate new Task call
> > +	dsb			@ Memory Barrier (not sure if needed, copied from
> > omap_smc2) +	smc	#1		@ Call PPA service
> > +	ldmfd	sp!, {r4-r11, pc}
> > +ENDPROC(omap_smc3)
> > +
> >  ENTRY(omap_modify_auxcoreboot0)
> >  	stmfd   sp!, {r1-r12, lr}
> >  	ldr	r12, =0x104
> 
> Dave, it is ok now?

Yes, that's sufficient to warn people to stop and think (at least, if
someone copy-pastes it, they will likely highlight the possible error by
copy-pasting the comment too).  Thanks.

Acked-by: Dave Martin <Dave.Martin@arm.com>


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v4 1/2] ARM: OMAP: Add secure function omap_smc3() which calling instruction smc #1
  2013-09-16 17:10 [PATCH v4 1/2] ARM: OMAP: Add secure function omap_smc3() which calling instruction smc #1 Dave Martin
@ 2013-09-17 15:43 ` Tony Lindgren
  2013-09-17 15:53   ` Pali Rohár
  0 siblings, 1 reply; 9+ messages in thread
From: Tony Lindgren @ 2013-09-17 15:43 UTC (permalink / raw)
  To: Dave Martin
  Cc: Pali Rohár,
	Ивайло
	Димитров,
	nm, linux, aaro.koskinen, pdeschrijver, linux-kernel,
	santosh.shilimkar, pavel, linux-omap, linux-arm-kernel

* Dave Martin <Dave.Martin@arm.com> [130916 10:18]:
> On Sat, Sep 14, 2013 at 10:37:12AM +0100, Pali Rohár wrote:
> > On Sunday 08 September 2013 09:43:29 Pali Rohár wrote:
> > > + */
> > > +ENTRY(omap_smc3)
> > > +	stmfd	sp!, {r4-r11, lr}
> > > +	mov	r12, r0		@ Copy the secure service ID
> > > +	mov	r6, #0xff	@ Indicate new Task call
> > > +	dsb			@ Memory Barrier (not sure if needed, copied from
> > > omap_smc2) +	smc	#1		@ Call PPA service
> > > +	ldmfd	sp!, {r4-r11, pc}
> > > +ENDPROC(omap_smc3)
> > > +
> > >  ENTRY(omap_modify_auxcoreboot0)
> > >  	stmfd   sp!, {r1-r12, lr}
> > >  	ldr	r12, =0x104
> > 
> > Dave, it is ok now?
> 
> Yes, that's sufficient to warn people to stop and think (at least, if
> someone copy-pastes it, they will likely highlight the possible error by
> copy-pasting the comment too).  Thanks.
> 
> Acked-by: Dave Martin <Dave.Martin@arm.com>

Have you guys checked how this works with the recently posted
"[PATCH v6 0/5] ARM: support for Trusted Foundations secure monitor"
series?

Regards,

Tony
 

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v4 1/2] ARM: OMAP: Add secure function omap_smc3() which calling instruction smc #1
  2013-09-17 15:43 ` Tony Lindgren
@ 2013-09-17 15:53   ` Pali Rohár
  2013-09-17 23:17     ` Tony Lindgren
  0 siblings, 1 reply; 9+ messages in thread
From: Pali Rohár @ 2013-09-17 15:53 UTC (permalink / raw)
  To: Tony Lindgren
  Cc: Dave Martin,
	Ивайло
	Димитров,
	nm, linux, aaro.koskinen, pdeschrijver, linux-kernel,
	santosh.shilimkar, pavel, linux-omap, linux-arm-kernel

[-- Attachment #1: Type: Text/Plain, Size: 1656 bytes --]

On Tuesday 17 September 2013 17:43:31 Tony Lindgren wrote:
> * Dave Martin <Dave.Martin@arm.com> [130916 10:18]:
> > On Sat, Sep 14, 2013 at 10:37:12AM +0100, Pali Rohár wrote:
> > > On Sunday 08 September 2013 09:43:29 Pali Rohár wrote:
> > > > + */
> > > > +ENTRY(omap_smc3)
> > > > +	stmfd	sp!, {r4-r11, lr}
> > > > +	mov	r12, r0		@ Copy the secure service ID
> > > > +	mov	r6, #0xff	@ Indicate new Task call
> > > > +	dsb			@ Memory Barrier (not sure if needed, copied
> > > > from omap_smc2) +	smc	#1		@ Call PPA service
> > > > +	ldmfd	sp!, {r4-r11, pc}
> > > > +ENDPROC(omap_smc3)
> > > > +
> > > > 
> > > >  ENTRY(omap_modify_auxcoreboot0)
> > > >  
> > > >  	stmfd   sp!, {r1-r12, lr}
> > > >  	ldr	r12, =0x104
> > > 
> > > Dave, it is ok now?
> > 
> > Yes, that's sufficient to warn people to stop and think (at
> > least, if someone copy-pastes it, they will likely
> > highlight the possible error by copy-pasting the comment
> > too).  Thanks.
> > 
> > Acked-by: Dave Martin <Dave.Martin@arm.com>
> 
> Have you guys checked how this works with the recently posted
> "[PATCH v6 0/5] ARM: support for Trusted Foundations secure
> monitor" series?
> 
> Regards,
> 
> Tony

Hello,

this code looks like some Tegra and "Trusted Foundations" 
specific. There is Note: The API followed by Trusted Foundations 
does *not* follow the SMC calling conventions.  Also code calling 
smc #0 instruction, so in my opinion for rx51 it is useless.

Tony, can you include this two rx51 secure patches (patch v4 1/2 
and patch v2 2/2)? Or is there some any other problem?

-- 
Pali Rohár
pali.rohar@gmail.com

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v4 1/2] ARM: OMAP: Add secure function omap_smc3() which calling instruction smc #1
  2013-09-17 15:53   ` Pali Rohár
@ 2013-09-17 23:17     ` Tony Lindgren
  0 siblings, 0 replies; 9+ messages in thread
From: Tony Lindgren @ 2013-09-17 23:17 UTC (permalink / raw)
  To: Pali Rohár
  Cc: Dave Martin,
	Ивайло
	Димитров,
	nm, linux, aaro.koskinen, pdeschrijver, linux-kernel,
	santosh.shilimkar, pavel, linux-omap, linux-arm-kernel

* Pali Rohár <pali.rohar@gmail.com> [130917 09:01]:
> On Tuesday 17 September 2013 17:43:31 Tony Lindgren wrote:
> > Have you guys checked how this works with the recently posted
> > "[PATCH v6 0/5] ARM: support for Trusted Foundations secure
> > monitor" series?
> 
> this code looks like some Tegra and "Trusted Foundations" 
> specific. There is Note: The API followed by Trusted Foundations 
> does *not* follow the SMC calling conventions.  Also code calling 
> smc #0 instruction, so in my opinion for rx51 it is useless.

OK, so still no generic SMC code then :( This patch is fine
with me.
 
> Tony, can you include this two rx51 secure patches (patch v4 1/2 
> and patch v2 2/2)? Or is there some any other problem?

No other comments on this patch, I'll post some comments on the
v2 2/2 patch considering we're moving to device tree based
booting.

Regards,

Tony

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v4 1/2] ARM: OMAP: Add secure function omap_smc3() which calling instruction smc #1
  2013-10-08  8:09     ` Russell King - ARM Linux
@ 2013-10-08 19:05       ` Tony Lindgren
  0 siblings, 0 replies; 9+ messages in thread
From: Tony Lindgren @ 2013-10-08 19:05 UTC (permalink / raw)
  To: Russell King - ARM Linux
  Cc: Ben Dooks, Pali Rohár, Dave Martin, nm, aaro.koskinen,
	pdeschrijver, linux-kernel,
	Ивайло
	Димитров,
	santosh.shilimkar, pavel, linux-omap, linux-arm-kernel

* Russell King - ARM Linux <linux@arm.linux.org.uk> [131008 01:17]:
> On Tue, Oct 08, 2013 at 09:13:16AM +0200, Ben Dooks wrote:
> > On 08/09/13 09:43, Pali Rohár wrote:
> >> Here is new version (v4) of omap secure part patch:
> >>
> >> Other secure functions omap_smc1() and omap_smc2() calling instruction smc #0
> >> but Nokia RX-51 board needs to call smc #1 for PPA access.
> >>
> >> Signed-off-by: Ivaylo Dimitrov<freemangordon@abv.bg>
> >> Signed-off-by: Pali Rohár<pali.rohar@gmail.com>
> >> ---
> >> diff --git a/arch/arm/mach-omap2/omap-secure.h b/arch/arm/mach-omap2/omap-secure.h
> >> index 0e72917..c4586f4 100644
> >> --- a/arch/arm/mach-omap2/omap-secure.h
> >> +++ b/arch/arm/mach-omap2/omap-secure.h
> >> @@ -51,6 +51,7 @@
> >>   extern u32 omap_secure_dispatcher(u32 idx, u32 flag, u32 nargs,
> >>   				u32 arg1, u32 arg2, u32 arg3, u32 arg4);
> >>   extern u32 omap_smc2(u32 id, u32 falg, u32 pargs);
> >> +extern u32 omap_smc3(u32 id, u32 process, u32 flag, u32 pargs);
> >>   extern phys_addr_t omap_secure_ram_mempool_base(void);
> >>   extern int omap_secure_ram_reserve_memblock(void);
> >>
> >> diff --git a/arch/arm/mach-omap2/omap-smc.S b/arch/arm/mach-omap2/omap-smc.S
> >> index f6441c1..fd90125 100644
> >> --- a/arch/arm/mach-omap2/omap-smc.S
> >> +++ b/arch/arm/mach-omap2/omap-smc.S
> >> @@ -1,9 +1,11 @@
> >>   /*
> >> - * OMAP44xx secure APIs file.
> >> + * OMAP34xx and OMAP44xx secure APIs file.
> >>    *
> >>    * Copyright (C) 2010 Texas Instruments, Inc.
> >>    * Written by Santosh Shilimkar<santosh.shilimkar@ti.com>
> >>    *
> >> + * Copyright (C) 2012 Ivaylo Dimitrov<freemangordon@abv.bg>
> >> + * Copyright (C) 2013 Pali Rohár<pali.rohar@gmail.com>
> >>    *
> >>    * This program is free software,you can redistribute it and/or modify
> >>    * it under the terms of the GNU General Public License version 2 as
> >> @@ -54,6 +56,23 @@ ENTRY(omap_smc2)
> >>   	ldmfd   sp!, {r4-r12, pc}
> >>   ENDPROC(omap_smc2)
> >>
> >> +/**
> >> + * u32 omap_smc3(u32 service_id, u32 process_id, u32 flag, u32 pargs)
> >> + * Low level common routine for secure HAL and PPA APIs via smc #1
> >> + * r0 - @service_id: Secure Service ID
> >> + * r1 - @process_id: Process ID
> >> + * r2 - @flag: Flag to indicate the criticality of operation
> >> + * r3 - @pargs: Physical address of parameter list
> >> + */
> >> +ENTRY(omap_smc3)
> >> +	stmfd	sp!, {r4-r11, lr}
> >> +	mov	r12, r0		@ Copy the secure service ID
> >
> > I think you should save r12 in the call.
> 
> Not necessary.

Assuming there are no other comments I'll apply these into
omap-for-v3.13/n900 branch.

Regards,

Tony

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v4 1/2] ARM: OMAP: Add secure function omap_smc3() which calling instruction smc #1
  2013-10-08  7:13   ` Ben Dooks
@ 2013-10-08  8:09     ` Russell King - ARM Linux
  2013-10-08 19:05       ` Tony Lindgren
  0 siblings, 1 reply; 9+ messages in thread
From: Russell King - ARM Linux @ 2013-10-08  8:09 UTC (permalink / raw)
  To: Ben Dooks
  Cc: Pali Rohár, Dave Martin, tony, nm, aaro.koskinen,
	pdeschrijver, linux-kernel,
	Ивайло
	Димитров,
	santosh.shilimkar, pavel, linux-omap, linux-arm-kernel

On Tue, Oct 08, 2013 at 09:13:16AM +0200, Ben Dooks wrote:
> On 08/09/13 09:43, Pali Rohár wrote:
>> Here is new version (v4) of omap secure part patch:
>>
>> Other secure functions omap_smc1() and omap_smc2() calling instruction smc #0
>> but Nokia RX-51 board needs to call smc #1 for PPA access.
>>
>> Signed-off-by: Ivaylo Dimitrov<freemangordon@abv.bg>
>> Signed-off-by: Pali Rohár<pali.rohar@gmail.com>
>> ---
>> diff --git a/arch/arm/mach-omap2/omap-secure.h b/arch/arm/mach-omap2/omap-secure.h
>> index 0e72917..c4586f4 100644
>> --- a/arch/arm/mach-omap2/omap-secure.h
>> +++ b/arch/arm/mach-omap2/omap-secure.h
>> @@ -51,6 +51,7 @@
>>   extern u32 omap_secure_dispatcher(u32 idx, u32 flag, u32 nargs,
>>   				u32 arg1, u32 arg2, u32 arg3, u32 arg4);
>>   extern u32 omap_smc2(u32 id, u32 falg, u32 pargs);
>> +extern u32 omap_smc3(u32 id, u32 process, u32 flag, u32 pargs);
>>   extern phys_addr_t omap_secure_ram_mempool_base(void);
>>   extern int omap_secure_ram_reserve_memblock(void);
>>
>> diff --git a/arch/arm/mach-omap2/omap-smc.S b/arch/arm/mach-omap2/omap-smc.S
>> index f6441c1..fd90125 100644
>> --- a/arch/arm/mach-omap2/omap-smc.S
>> +++ b/arch/arm/mach-omap2/omap-smc.S
>> @@ -1,9 +1,11 @@
>>   /*
>> - * OMAP44xx secure APIs file.
>> + * OMAP34xx and OMAP44xx secure APIs file.
>>    *
>>    * Copyright (C) 2010 Texas Instruments, Inc.
>>    * Written by Santosh Shilimkar<santosh.shilimkar@ti.com>
>>    *
>> + * Copyright (C) 2012 Ivaylo Dimitrov<freemangordon@abv.bg>
>> + * Copyright (C) 2013 Pali Rohár<pali.rohar@gmail.com>
>>    *
>>    * This program is free software,you can redistribute it and/or modify
>>    * it under the terms of the GNU General Public License version 2 as
>> @@ -54,6 +56,23 @@ ENTRY(omap_smc2)
>>   	ldmfd   sp!, {r4-r12, pc}
>>   ENDPROC(omap_smc2)
>>
>> +/**
>> + * u32 omap_smc3(u32 service_id, u32 process_id, u32 flag, u32 pargs)
>> + * Low level common routine for secure HAL and PPA APIs via smc #1
>> + * r0 - @service_id: Secure Service ID
>> + * r1 - @process_id: Process ID
>> + * r2 - @flag: Flag to indicate the criticality of operation
>> + * r3 - @pargs: Physical address of parameter list
>> + */
>> +ENTRY(omap_smc3)
>> +	stmfd	sp!, {r4-r11, lr}
>> +	mov	r12, r0		@ Copy the secure service ID
>
> I think you should save r12 in the call.

Not necessary.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v4 1/2] ARM: OMAP: Add secure function omap_smc3() which calling instruction smc #1
  2013-09-08  7:43 ` [PATCH v4 " Pali Rohár
  2013-09-14  9:37   ` Pali Rohár
@ 2013-10-08  7:13   ` Ben Dooks
  2013-10-08  8:09     ` Russell King - ARM Linux
  1 sibling, 1 reply; 9+ messages in thread
From: Ben Dooks @ 2013-10-08  7:13 UTC (permalink / raw)
  To: Pali Rohár
  Cc: Dave Martin, tony, nm, linux, aaro.koskinen, pdeschrijver,
	linux-kernel,
	Ивайло
	Димитров,
	santosh.shilimkar, pavel, linux-omap, linux-arm-kernel

On 08/09/13 09:43, Pali Rohár wrote:
> Here is new version (v4) of omap secure part patch:
>
> Other secure functions omap_smc1() and omap_smc2() calling instruction smc #0
> but Nokia RX-51 board needs to call smc #1 for PPA access.
>
> Signed-off-by: Ivaylo Dimitrov<freemangordon@abv.bg>
> Signed-off-by: Pali Rohár<pali.rohar@gmail.com>
> ---
> diff --git a/arch/arm/mach-omap2/omap-secure.h b/arch/arm/mach-omap2/omap-secure.h
> index 0e72917..c4586f4 100644
> --- a/arch/arm/mach-omap2/omap-secure.h
> +++ b/arch/arm/mach-omap2/omap-secure.h
> @@ -51,6 +51,7 @@
>   extern u32 omap_secure_dispatcher(u32 idx, u32 flag, u32 nargs,
>   				u32 arg1, u32 arg2, u32 arg3, u32 arg4);
>   extern u32 omap_smc2(u32 id, u32 falg, u32 pargs);
> +extern u32 omap_smc3(u32 id, u32 process, u32 flag, u32 pargs);
>   extern phys_addr_t omap_secure_ram_mempool_base(void);
>   extern int omap_secure_ram_reserve_memblock(void);
>
> diff --git a/arch/arm/mach-omap2/omap-smc.S b/arch/arm/mach-omap2/omap-smc.S
> index f6441c1..fd90125 100644
> --- a/arch/arm/mach-omap2/omap-smc.S
> +++ b/arch/arm/mach-omap2/omap-smc.S
> @@ -1,9 +1,11 @@
>   /*
> - * OMAP44xx secure APIs file.
> + * OMAP34xx and OMAP44xx secure APIs file.
>    *
>    * Copyright (C) 2010 Texas Instruments, Inc.
>    * Written by Santosh Shilimkar<santosh.shilimkar@ti.com>
>    *
> + * Copyright (C) 2012 Ivaylo Dimitrov<freemangordon@abv.bg>
> + * Copyright (C) 2013 Pali Rohár<pali.rohar@gmail.com>
>    *
>    * This program is free software,you can redistribute it and/or modify
>    * it under the terms of the GNU General Public License version 2 as
> @@ -54,6 +56,23 @@ ENTRY(omap_smc2)
>   	ldmfd   sp!, {r4-r12, pc}
>   ENDPROC(omap_smc2)
>
> +/**
> + * u32 omap_smc3(u32 service_id, u32 process_id, u32 flag, u32 pargs)
> + * Low level common routine for secure HAL and PPA APIs via smc #1
> + * r0 - @service_id: Secure Service ID
> + * r1 - @process_id: Process ID
> + * r2 - @flag: Flag to indicate the criticality of operation
> + * r3 - @pargs: Physical address of parameter list
> + */
> +ENTRY(omap_smc3)
> +	stmfd	sp!, {r4-r11, lr}
> +	mov	r12, r0		@ Copy the secure service ID

I think you should save r12 in the call.


-- 
Ben Dooks				http://www.codethink.co.uk/
Senior Engineer				Codethink - Providing Genius

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v4 1/2] ARM: OMAP: Add secure function omap_smc3() which calling instruction smc #1
  2013-09-08  7:43 ` [PATCH v4 " Pali Rohár
@ 2013-09-14  9:37   ` Pali Rohár
  2013-10-08  7:13   ` Ben Dooks
  1 sibling, 0 replies; 9+ messages in thread
From: Pali Rohár @ 2013-09-14  9:37 UTC (permalink / raw)
  To: Dave Martin
  Cc: tony,
	Ивайло
	Димитров,
	nm, linux, aaro.koskinen, pdeschrijver, linux-kernel,
	santosh.shilimkar, pavel, linux-omap, linux-arm-kernel

[-- Attachment #1: Type: Text/Plain, Size: 2588 bytes --]

On Sunday 08 September 2013 09:43:29 Pali Rohár wrote:
> Here is new version (v4) of omap secure part patch:
> 
> Other secure functions omap_smc1() and omap_smc2() calling
> instruction smc #0 but Nokia RX-51 board needs to call smc #1
> for PPA access.
> 
> Signed-off-by: Ivaylo Dimitrov <freemangordon@abv.bg>
> Signed-off-by: Pali Rohár <pali.rohar@gmail.com>
> ---
> diff --git a/arch/arm/mach-omap2/omap-secure.h
> b/arch/arm/mach-omap2/omap-secure.h index 0e72917..c4586f4
> 100644
> --- a/arch/arm/mach-omap2/omap-secure.h
> +++ b/arch/arm/mach-omap2/omap-secure.h
> @@ -51,6 +51,7 @@
>  extern u32 omap_secure_dispatcher(u32 idx, u32 flag, u32
> nargs, u32 arg1, u32 arg2, u32 arg3, u32 arg4);
>  extern u32 omap_smc2(u32 id, u32 falg, u32 pargs);
> +extern u32 omap_smc3(u32 id, u32 process, u32 flag, u32
> pargs); extern phys_addr_t
> omap_secure_ram_mempool_base(void); extern int
> omap_secure_ram_reserve_memblock(void);
> 
> diff --git a/arch/arm/mach-omap2/omap-smc.S
> b/arch/arm/mach-omap2/omap-smc.S index f6441c1..fd90125
> 100644
> --- a/arch/arm/mach-omap2/omap-smc.S
> +++ b/arch/arm/mach-omap2/omap-smc.S
> @@ -1,9 +1,11 @@
>  /*
> - * OMAP44xx secure APIs file.
> + * OMAP34xx and OMAP44xx secure APIs file.
>   *
>   * Copyright (C) 2010 Texas Instruments, Inc.
>   * Written by Santosh Shilimkar <santosh.shilimkar@ti.com>
>   *
> + * Copyright (C) 2012 Ivaylo Dimitrov <freemangordon@abv.bg>
> + * Copyright (C) 2013 Pali Rohár <pali.rohar@gmail.com>
>   *
>   * This program is free software,you can redistribute it
> and/or modify * it under the terms of the GNU General Public
> License version 2 as @@ -54,6 +56,23 @@ ENTRY(omap_smc2)
>  	ldmfd   sp!, {r4-r12, pc}
>  ENDPROC(omap_smc2)
> 
> +/**
> + * u32 omap_smc3(u32 service_id, u32 process_id, u32 flag,
> u32 pargs) + * Low level common routine for secure HAL and
> PPA APIs via smc #1 + * r0 - @service_id: Secure Service ID
> + * r1 - @process_id: Process ID
> + * r2 - @flag: Flag to indicate the criticality of operation
> + * r3 - @pargs: Physical address of parameter list
> + */
> +ENTRY(omap_smc3)
> +	stmfd	sp!, {r4-r11, lr}
> +	mov	r12, r0		@ Copy the secure service ID
> +	mov	r6, #0xff	@ Indicate new Task call
> +	dsb			@ Memory Barrier (not sure if needed, copied from
> omap_smc2) +	smc	#1		@ Call PPA service
> +	ldmfd	sp!, {r4-r11, pc}
> +ENDPROC(omap_smc3)
> +
>  ENTRY(omap_modify_auxcoreboot0)
>  	stmfd   sp!, {r1-r12, lr}
>  	ldr	r12, =0x104

Dave, it is ok now?

-- 
Pali Rohár
pali.rohar@gmail.com

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH v4 1/2] ARM: OMAP: Add secure function omap_smc3() which calling instruction smc #1
  2013-09-04 12:43 [PATCH v3 " Dave Martin
@ 2013-09-08  7:43 ` Pali Rohár
  2013-09-14  9:37   ` Pali Rohár
  2013-10-08  7:13   ` Ben Dooks
  0 siblings, 2 replies; 9+ messages in thread
From: Pali Rohár @ 2013-09-08  7:43 UTC (permalink / raw)
  To: Dave Martin, tony
  Cc: Ивайло
	Димитров,
	nm, linux, aaro.koskinen, pdeschrijver, linux-kernel,
	santosh.shilimkar, pavel, linux-omap, linux-arm-kernel,
	Pali Rohár

[-- Attachment #1: Type: Text/Plain, Size: 2387 bytes --]

Here is new version (v4) of omap secure part patch:

Other secure functions omap_smc1() and omap_smc2() calling instruction smc #0
but Nokia RX-51 board needs to call smc #1 for PPA access.

Signed-off-by: Ivaylo Dimitrov <freemangordon@abv.bg>
Signed-off-by: Pali Rohár <pali.rohar@gmail.com>
---
diff --git a/arch/arm/mach-omap2/omap-secure.h b/arch/arm/mach-omap2/omap-secure.h
index 0e72917..c4586f4 100644
--- a/arch/arm/mach-omap2/omap-secure.h
+++ b/arch/arm/mach-omap2/omap-secure.h
@@ -51,6 +51,7 @@
 extern u32 omap_secure_dispatcher(u32 idx, u32 flag, u32 nargs,
 				u32 arg1, u32 arg2, u32 arg3, u32 arg4);
 extern u32 omap_smc2(u32 id, u32 falg, u32 pargs);
+extern u32 omap_smc3(u32 id, u32 process, u32 flag, u32 pargs);
 extern phys_addr_t omap_secure_ram_mempool_base(void);
 extern int omap_secure_ram_reserve_memblock(void);
 
diff --git a/arch/arm/mach-omap2/omap-smc.S b/arch/arm/mach-omap2/omap-smc.S
index f6441c1..fd90125 100644
--- a/arch/arm/mach-omap2/omap-smc.S
+++ b/arch/arm/mach-omap2/omap-smc.S
@@ -1,9 +1,11 @@
 /*
- * OMAP44xx secure APIs file.
+ * OMAP34xx and OMAP44xx secure APIs file.
  *
  * Copyright (C) 2010 Texas Instruments, Inc.
  * Written by Santosh Shilimkar <santosh.shilimkar@ti.com>
  *
+ * Copyright (C) 2012 Ivaylo Dimitrov <freemangordon@abv.bg>
+ * Copyright (C) 2013 Pali Rohár <pali.rohar@gmail.com>
  *
  * This program is free software,you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
@@ -54,6 +56,23 @@ ENTRY(omap_smc2)
 	ldmfd   sp!, {r4-r12, pc}
 ENDPROC(omap_smc2)
 
+/**
+ * u32 omap_smc3(u32 service_id, u32 process_id, u32 flag, u32 pargs)
+ * Low level common routine for secure HAL and PPA APIs via smc #1
+ * r0 - @service_id: Secure Service ID
+ * r1 - @process_id: Process ID
+ * r2 - @flag: Flag to indicate the criticality of operation
+ * r3 - @pargs: Physical address of parameter list
+ */
+ENTRY(omap_smc3)
+	stmfd	sp!, {r4-r11, lr}
+	mov	r12, r0		@ Copy the secure service ID
+	mov	r6, #0xff	@ Indicate new Task call
+	dsb			@ Memory Barrier (not sure if needed, copied from omap_smc2)
+	smc	#1		@ Call PPA service
+	ldmfd	sp!, {r4-r11, pc}
+ENDPROC(omap_smc3)
+
 ENTRY(omap_modify_auxcoreboot0)
 	stmfd   sp!, {r1-r12, lr}
 	ldr	r12, =0x104


-- 
Pali Rohár
pali.rohar@gmail.com

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply related	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2013-10-08 19:06 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-09-16 17:10 [PATCH v4 1/2] ARM: OMAP: Add secure function omap_smc3() which calling instruction smc #1 Dave Martin
2013-09-17 15:43 ` Tony Lindgren
2013-09-17 15:53   ` Pali Rohár
2013-09-17 23:17     ` Tony Lindgren
  -- strict thread matches above, loose matches on Subject: below --
2013-09-04 12:43 [PATCH v3 " Dave Martin
2013-09-08  7:43 ` [PATCH v4 " Pali Rohár
2013-09-14  9:37   ` Pali Rohár
2013-10-08  7:13   ` Ben Dooks
2013-10-08  8:09     ` Russell King - ARM Linux
2013-10-08 19:05       ` Tony Lindgren

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).