* 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).