Patchwork [U-Boot,05/12,V3] Exynos5420: Modify TZPC init to support 5420

login
register
mail settings
Submitter Rajeshwari Birje
Date Sept. 11, 2013, 10:01 a.m.
Message ID <1378893684-27733-6-git-send-email-rajeshwari.s@samsung.com>
Download mbox | patch
Permalink /patch/274221/
State Changes Requested
Delegated to: Minkyu Kang
Headers show

Comments

Rajeshwari Birje - Sept. 11, 2013, 10:01 a.m.
From: Akshay Saraswat <akshay.s@samsung.com>

Currently, part of TZPC init code for Exynos5 starts setting DECPROT
from the base address 0x10100000 upto 0x10190000 but in case of
Exynos5420 we need it to start from 0x0100E0000 and keep end address
same as 0x10190000.

Signed-off-by: Rajeshwari S Shinde <rajeshwari.s@samsung.com>
Signed-off-by: Akshay Saraswat <akshay.s@samsung.com>
---
Changes in V2:
	- None
Changes in V3:
	- None
 arch/arm/cpu/armv7/exynos/tzpc.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)
Simon Glass - Sept. 19, 2013, 5:57 a.m.
Hi Rajeshwari,

On Wed, Sep 11, 2013 at 4:01 AM, Rajeshwari S Shinde <
rajeshwari.s@samsung.com> wrote:

> From: Akshay Saraswat <akshay.s@samsung.com>
>
> Currently, part of TZPC init code for Exynos5 starts setting DECPROT
> from the base address 0x10100000 upto 0x10190000 but in case of
> Exynos5420 we need it to start from 0x0100E0000 and keep end address
> same as 0x10190000.
>
> Signed-off-by: Rajeshwari S Shinde <rajeshwari.s@samsung.com>
> Signed-off-by: Akshay Saraswat <akshay.s@samsung.com>
> ---
> Changes in V2:
>         - None
> Changes in V3:
>         - None
>  arch/arm/cpu/armv7/exynos/tzpc.c | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm/cpu/armv7/exynos/tzpc.c
> b/arch/arm/cpu/armv7/exynos/tzpc.c
> index 395077c..1102596 100644
> --- a/arch/arm/cpu/armv7/exynos/tzpc.c
> +++ b/arch/arm/cpu/armv7/exynos/tzpc.c
> @@ -23,7 +23,12 @@ void tzpc_init(void)
>         else if (cpu_is_exynos4())
>                 end = start + ((EXYNOS4_NR_TZPC_BANKS - 1) *
> TZPC_BASE_OFFSET);
>
> -       for (addr = start; addr <= end; addr += TZPC_BASE_OFFSET) {
> +       if (proid_is_exynos5420())
> +               addr = start - 0x20000;
>

Shouldn't this be in a #define somewhere?


> +       else
> +               addr = start;
> +
> +       for (; addr <= end; addr += TZPC_BASE_OFFSET) {
>                 tzpc = (struct exynos_tzpc *)addr;
>
>                 if (addr == start)
> --
> 1.7.12.4
>
>
Regards,
Simon
Rajeshwari Birje - Sept. 20, 2013, 9:32 a.m.
Hi Simon

Thank you for coments.

Regards,
Rajeshwari Shinde

On Thu, Sep 19, 2013 at 11:27 AM, Simon Glass <sjg@chromium.org> wrote:

> Hi Rajeshwari,
>
> On Wed, Sep 11, 2013 at 4:01 AM, Rajeshwari S Shinde <
> rajeshwari.s@samsung.com> wrote:
>
> > From: Akshay Saraswat <akshay.s@samsung.com>
> >
> > Currently, part of TZPC init code for Exynos5 starts setting DECPROT
> > from the base address 0x10100000 upto 0x10190000 but in case of
> > Exynos5420 we need it to start from 0x0100E0000 and keep end address
> > same as 0x10190000.
> >
> > Signed-off-by: Rajeshwari S Shinde <rajeshwari.s@samsung.com>
> > Signed-off-by: Akshay Saraswat <akshay.s@samsung.com>
> > ---
> > Changes in V2:
> >         - None
> > Changes in V3:
> >         - None
> >  arch/arm/cpu/armv7/exynos/tzpc.c | 7 ++++++-
> >  1 file changed, 6 insertions(+), 1 deletion(-)
> >
> > diff --git a/arch/arm/cpu/armv7/exynos/tzpc.c
> > b/arch/arm/cpu/armv7/exynos/tzpc.c
> > index 395077c..1102596 100644
> > --- a/arch/arm/cpu/armv7/exynos/tzpc.c
> > +++ b/arch/arm/cpu/armv7/exynos/tzpc.c
> > @@ -23,7 +23,12 @@ void tzpc_init(void)
> >         else if (cpu_is_exynos4())
> >                 end = start + ((EXYNOS4_NR_TZPC_BANKS - 1) *
> > TZPC_BASE_OFFSET);
> >
> > -       for (addr = start; addr <= end; addr += TZPC_BASE_OFFSET) {
> > +       if (proid_is_exynos5420())
> > +               addr = start - 0x20000;
> >
>
> Shouldn't this be in a #define somewhere?
>
Instead of having a  #define  we get the start address via
samsung_get_base_tzpc, since there exception in case of 5420 where we need
to start from 0x100E0000 we put a if condition.

>
>
> > +       else
> > +               addr = start;
> > +
> > +       for (; addr <= end; addr += TZPC_BASE_OFFSET) {
> >                 tzpc = (struct exynos_tzpc *)addr;
> >
> >                 if (addr == start)
> > --
> > 1.7.12.4
> >
> >
> Regards,
> Simon
>
> _______________________________________________
> U-Boot mailing list
> U-Boot@lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
>
> --
Regards,
Rajeshwari Shinde
Simon Glass - Sept. 20, 2013, 3:01 p.m.
Hi Rajeshwari,

On Fri, Sep 20, 2013 at 3:32 AM, Rajeshwari Birje <
rajeshwari.birje@gmail.com> wrote:

> Hi Simon
>
> Thank you for coments.
>
> Regards,
> Rajeshwari Shinde
>
> On Thu, Sep 19, 2013 at 11:27 AM, Simon Glass <sjg@chromium.org> wrote:
>
>> Hi Rajeshwari,
>>
>> On Wed, Sep 11, 2013 at 4:01 AM, Rajeshwari S Shinde <
>> rajeshwari.s@samsung.com> wrote:
>>
>> > From: Akshay Saraswat <akshay.s@samsung.com>
>> >
>> > Currently, part of TZPC init code for Exynos5 starts setting DECPROT
>> > from the base address 0x10100000 upto 0x10190000 but in case of
>> > Exynos5420 we need it to start from 0x0100E0000 and keep end address
>> > same as 0x10190000.
>> >
>> > Signed-off-by: Rajeshwari S Shinde <rajeshwari.s@samsung.com>
>> > Signed-off-by: Akshay Saraswat <akshay.s@samsung.com>
>> > ---
>> > Changes in V2:
>> >         - None
>> > Changes in V3:
>> >         - None
>> >  arch/arm/cpu/armv7/exynos/tzpc.c | 7 ++++++-
>> >  1 file changed, 6 insertions(+), 1 deletion(-)
>> >
>> > diff --git a/arch/arm/cpu/armv7/exynos/tzpc.c
>> > b/arch/arm/cpu/armv7/exynos/tzpc.c
>> > index 395077c..1102596 100644
>> > --- a/arch/arm/cpu/armv7/exynos/tzpc.c
>> > +++ b/arch/arm/cpu/armv7/exynos/tzpc.c
>> > @@ -23,7 +23,12 @@ void tzpc_init(void)
>> >         else if (cpu_is_exynos4())
>> >                 end = start + ((EXYNOS4_NR_TZPC_BANKS - 1) *
>> > TZPC_BASE_OFFSET);
>> >
>> > -       for (addr = start; addr <= end; addr += TZPC_BASE_OFFSET) {
>> > +       if (proid_is_exynos5420())
>> > +               addr = start - 0x20000;
>> >
>>
>> Shouldn't this be in a #define somewhere?
>>
> Instead of having a  #define  we get the start address via
> samsung_get_base_tzpc, since there exception in case of 5420 where we need
> to start from 0x100E0000 we put a if condition.
>

Does that mean that the address returned by  samsung_get_base_tzpc() should
be different for 5250 and 5420?


>>
>> > +       else
>> > +               addr = start;
>> > +
>> > +       for (; addr <= end; addr += TZPC_BASE_OFFSET) {
>> >                 tzpc = (struct exynos_tzpc *)addr;
>> >
>> >                 if (addr == start)
>> > --
>> > 1.7.12.4
>> >
>> >
>>
>> Regards,
Simon
Rajeshwari Birje - Sept. 23, 2013, 5:11 a.m.
Hi Simon,

On Fri, Sep 20, 2013 at 8:31 PM, Simon Glass <sjg@chromium.org> wrote:

> Hi Rajeshwari,
>
> On Fri, Sep 20, 2013 at 3:32 AM, Rajeshwari Birje <
> rajeshwari.birje@gmail.com> wrote:
>
>> Hi Simon
>>
>> Thank you for coments.
>>
>> Regards,
>> Rajeshwari Shinde
>>
>> On Thu, Sep 19, 2013 at 11:27 AM, Simon Glass <sjg@chromium.org> wrote:
>>
>>> Hi Rajeshwari,
>>>
>>> On Wed, Sep 11, 2013 at 4:01 AM, Rajeshwari S Shinde <
>>> rajeshwari.s@samsung.com> wrote:
>>>
>>> > From: Akshay Saraswat <akshay.s@samsung.com>
>>> >
>>> > Currently, part of TZPC init code for Exynos5 starts setting DECPROT
>>> > from the base address 0x10100000 upto 0x10190000 but in case of
>>> > Exynos5420 we need it to start from 0x0100E0000 and keep end address
>>> > same as 0x10190000.
>>> >
>>> > Signed-off-by: Rajeshwari S Shinde <rajeshwari.s@samsung.com>
>>> > Signed-off-by: Akshay Saraswat <akshay.s@samsung.com>
>>> > ---
>>> > Changes in V2:
>>> >         - None
>>> > Changes in V3:
>>> >         - None
>>> >  arch/arm/cpu/armv7/exynos/tzpc.c | 7 ++++++-
>>> >  1 file changed, 6 insertions(+), 1 deletion(-)
>>> >
>>> > diff --git a/arch/arm/cpu/armv7/exynos/tzpc.c
>>> > b/arch/arm/cpu/armv7/exynos/tzpc.c
>>> > index 395077c..1102596 100644
>>> > --- a/arch/arm/cpu/armv7/exynos/tzpc.c
>>> > +++ b/arch/arm/cpu/armv7/exynos/tzpc.c
>>> > @@ -23,7 +23,12 @@ void tzpc_init(void)
>>> >         else if (cpu_is_exynos4())
>>> >                 end = start + ((EXYNOS4_NR_TZPC_BANKS - 1) *
>>> > TZPC_BASE_OFFSET);
>>> >
>>> > -       for (addr = start; addr <= end; addr += TZPC_BASE_OFFSET) {
>>> > +       if (proid_is_exynos5420())
>>> > +               addr = start - 0x20000;
>>> >
>>>
>>> Shouldn't this be in a #define somewhere?
>>>
>> Instead of having a  #define  we get the start address via
>> samsung_get_base_tzpc, since there exception in case of 5420 where we need
>> to start from 0x100E0000 we put a if condition.
>>
>
> Does that mean that the address returned by  samsung_get_base_tzpc()
> should be different for 5250 and 5420?
>
Yes they can be different, depends on the value you have mentioned in the
cpu.h file for that SOC.

>
>
>>>
>>> > +       else
>>> > +               addr = start;
>>> > +
>>> > +       for (; addr <= end; addr += TZPC_BASE_OFFSET) {
>>> >                 tzpc = (struct exynos_tzpc *)addr;
>>> >
>>> >                 if (addr == start)
>>> > --
>>> > 1.7.12.4
>>> >
>>> >
>>>
>>> Regards,
> Simon
>
>
> --
Regards,
Rajeshwari Shinde

Patch

diff --git a/arch/arm/cpu/armv7/exynos/tzpc.c b/arch/arm/cpu/armv7/exynos/tzpc.c
index 395077c..1102596 100644
--- a/arch/arm/cpu/armv7/exynos/tzpc.c
+++ b/arch/arm/cpu/armv7/exynos/tzpc.c
@@ -23,7 +23,12 @@  void tzpc_init(void)
 	else if (cpu_is_exynos4())
 		end = start + ((EXYNOS4_NR_TZPC_BANKS - 1) * TZPC_BASE_OFFSET);
 
-	for (addr = start; addr <= end; addr += TZPC_BASE_OFFSET) {
+	if (proid_is_exynos5420())
+		addr = start - 0x20000;
+	else
+		addr = start;
+
+	for (; addr <= end; addr += TZPC_BASE_OFFSET) {
 		tzpc = (struct exynos_tzpc *)addr;
 
 		if (addr == start)