Re: [U-Boot] [PATCH v2 1/3] exynos: move tzpc_init to armv7/exynos

2013-04-05 Thread Inderpal Singh
Dear Minkyu,

Thanks for the review.


On 29 March 2013 08:27, Minkyu Kang mk7.k...@samsung.com wrote:

 Dear Inderpal Singh,

 On 15/03/13 15:23, Inderpal Singh wrote:
  tzpc_init is common for all exynos5 boards, hence move it to
  armv7/exynos so that all other boards can use it.
 
  Also update the smdk5250 Makefile and config file.
 
  Signed-off-by: Inderpal Singh inderpal.si...@linaro.org
  Acked-by: Chander Kashyap chander.kash...@linaro.org
  ---
   arch/arm/cpu/armv7/exynos/Makefile  |2 +-
   arch/arm/cpu/armv7/exynos/tzpc_init.c   |   48
 +++
   arch/arm/include/asm/arch-exynos/tzpc.h |   28 ++
   board/samsung/smdk5250/Makefile |1 -
   board/samsung/smdk5250/setup.h  |   25 
   board/samsung/smdk5250/tzpc_init.c  |   48
 ---
   include/configs/exynos5250-dt.h |2 --
   7 files changed, 77 insertions(+), 77 deletions(-)
   create mode 100644 arch/arm/cpu/armv7/exynos/tzpc_init.c
   delete mode 100644 board/samsung/smdk5250/tzpc_init.c
 
  diff --git a/arch/arm/cpu/armv7/exynos/Makefile
 b/arch/arm/cpu/armv7/exynos/Makefile
  index 9119961..b9cf921 100644
  --- a/arch/arm/cpu/armv7/exynos/Makefile
  +++ b/arch/arm/cpu/armv7/exynos/Makefile
  @@ -22,7 +22,7 @@ include $(TOPDIR)/config.mk
 
   LIB  = $(obj)lib$(SOC).o
 
  -COBJS+= clock.o power.o soc.o system.o pinmux.o
  +COBJS+= clock.o power.o soc.o system.o pinmux.o tzpc_init.o

 patch looks good.
 but, do we need to build tzpc always?
 and please rename tzpc_init.c to just tzpc.c.


Yes, we need it always.
I have renamed the file to tzpc.c in the v3 version.



 
   SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
   OBJS := $(addprefix $(obj),$(COBJS) $(SOBJS))
  diff --git a/arch/arm/cpu/armv7/exynos/tzpc_init.c
 b/arch/arm/cpu/armv7/exynos/tzpc_init.c
  new file mode 100644
  index 000..81adb4b
  --- /dev/null
  +++ b/arch/arm/cpu/armv7/exynos/tzpc_init.c
  @@ -0,0 +1,48 @@
  +/*
  + * Lowlevel setup for SMDK5250 board based on S5PC520
  + *
  + * Copyright (C) 2012 Samsung Electronics
  + *
  + * See file CREDITS for list of people who contributed to this
  + * project.
  + *
  + * This program is free software; you can redistribute it and/or
  + * modify it under the terms of the GNU General Public License as
  + * published by the Free Software Foundation; either version 2 of
  + * the License, or (at your option) any later version.
  + *
  + * This program is distributed in the hope that it will be useful,
  + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  + * GNU General Public License for more details.
  + *
  + * You should have received a copy of the GNU General Public License
  + * along with this program; if not, write to the Free Software
  + * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
  + * MA 02111-1307 USA
  + */
  +
  +#include asm/arch/tzpc.h
  +#include asm/io.h
  +
  +/* Setting TZPC[TrustZone Protection Controller] */
  +void tzpc_init(void)
  +{
  + struct exynos_tzpc *tzpc;
  + unsigned int addr;
  +
  + for (addr = TZPC0_BASE; addr = TZPC9_BASE; addr +=
 TZPC_BASE_OFFSET) {
  + tzpc = (struct exynos_tzpc *)addr;
  +
  + if (addr == TZPC0_BASE)
  + writel(R0SIZE, tzpc-r0size);
  +
  + writel(DECPROTXSET, tzpc-decprot0set);
  + writel(DECPROTXSET, tzpc-decprot1set);
  +
  + if (addr != TZPC9_BASE) {
  + writel(DECPROTXSET, tzpc-decprot2set);
  + writel(DECPROTXSET, tzpc-decprot3set);
  + }
  + }
  +}
  diff --git a/arch/arm/include/asm/arch-exynos/tzpc.h
 b/arch/arm/include/asm/arch-exynos/tzpc.h
  index c5eb4b1..050ad70 100644
  --- a/arch/arm/include/asm/arch-exynos/tzpc.h
  +++ b/arch/arm/include/asm/arch-exynos/tzpc.h
  @@ -47,6 +47,34 @@ struct exynos_tzpc {
unsigned int pcellid2;
unsigned int pcellid3;
   };
  +
  +/* TZPC : Register Offsets */
  +#define TZPC0_BASE   0x1010
  +#define TZPC1_BASE   0x1011
  +#define TZPC2_BASE   0x1012
  +#define TZPC3_BASE   0x1013
  +#define TZPC4_BASE   0x1014
  +#define TZPC5_BASE   0x1015
  +#define TZPC6_BASE   0x1016
  +#define TZPC7_BASE   0x1017
  +#define TZPC8_BASE   0x1018
  +#define TZPC9_BASE   0x1019

 we did not need these defines.
 please use samsung_get_base_tzpc().


Yes, good point.
Have removed these macros and used samsung_get_base tzpc in v3.

With Regards,
Inder



  +
  +#define TZPC_BASE_OFFSET 0x1
  +
  +/*
  + * TZPC Register Value :
  + * R0SIZE: 0x0 : Size of secured ram
  + */
  +#define R0SIZE   0x0
  +
  +/*
  + * TZPC Decode Protection Register Value :
  + * DECPROTXSET: 0xFF : Set Decode region to 

Re: [U-Boot] [PATCH v2 1/3] exynos: move tzpc_init to armv7/exynos

2013-03-28 Thread Minkyu Kang
Dear Inderpal Singh,

On 15/03/13 15:23, Inderpal Singh wrote:
 tzpc_init is common for all exynos5 boards, hence move it to
 armv7/exynos so that all other boards can use it.
 
 Also update the smdk5250 Makefile and config file.
 
 Signed-off-by: Inderpal Singh inderpal.si...@linaro.org
 Acked-by: Chander Kashyap chander.kash...@linaro.org
 ---
  arch/arm/cpu/armv7/exynos/Makefile  |2 +-
  arch/arm/cpu/armv7/exynos/tzpc_init.c   |   48 
 +++
  arch/arm/include/asm/arch-exynos/tzpc.h |   28 ++
  board/samsung/smdk5250/Makefile |1 -
  board/samsung/smdk5250/setup.h  |   25 
  board/samsung/smdk5250/tzpc_init.c  |   48 
 ---
  include/configs/exynos5250-dt.h |2 --
  7 files changed, 77 insertions(+), 77 deletions(-)
  create mode 100644 arch/arm/cpu/armv7/exynos/tzpc_init.c
  delete mode 100644 board/samsung/smdk5250/tzpc_init.c
 
 diff --git a/arch/arm/cpu/armv7/exynos/Makefile 
 b/arch/arm/cpu/armv7/exynos/Makefile
 index 9119961..b9cf921 100644
 --- a/arch/arm/cpu/armv7/exynos/Makefile
 +++ b/arch/arm/cpu/armv7/exynos/Makefile
 @@ -22,7 +22,7 @@ include $(TOPDIR)/config.mk
  
  LIB  = $(obj)lib$(SOC).o
  
 -COBJS+= clock.o power.o soc.o system.o pinmux.o
 +COBJS+= clock.o power.o soc.o system.o pinmux.o tzpc_init.o

patch looks good.
but, do we need to build tzpc always?
and please rename tzpc_init.c to just tzpc.c.

  
  SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
  OBJS := $(addprefix $(obj),$(COBJS) $(SOBJS))
 diff --git a/arch/arm/cpu/armv7/exynos/tzpc_init.c 
 b/arch/arm/cpu/armv7/exynos/tzpc_init.c
 new file mode 100644
 index 000..81adb4b
 --- /dev/null
 +++ b/arch/arm/cpu/armv7/exynos/tzpc_init.c
 @@ -0,0 +1,48 @@
 +/*
 + * Lowlevel setup for SMDK5250 board based on S5PC520
 + *
 + * Copyright (C) 2012 Samsung Electronics
 + *
 + * See file CREDITS for list of people who contributed to this
 + * project.
 + *
 + * This program is free software; you can redistribute it and/or
 + * modify it under the terms of the GNU General Public License as
 + * published by the Free Software Foundation; either version 2 of
 + * the License, or (at your option) any later version.
 + *
 + * This program is distributed in the hope that it will be useful,
 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 + * GNU General Public License for more details.
 + *
 + * You should have received a copy of the GNU General Public License
 + * along with this program; if not, write to the Free Software
 + * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
 + * MA 02111-1307 USA
 + */
 +
 +#include asm/arch/tzpc.h
 +#include asm/io.h
 +
 +/* Setting TZPC[TrustZone Protection Controller] */
 +void tzpc_init(void)
 +{
 + struct exynos_tzpc *tzpc;
 + unsigned int addr;
 +
 + for (addr = TZPC0_BASE; addr = TZPC9_BASE; addr += TZPC_BASE_OFFSET) {
 + tzpc = (struct exynos_tzpc *)addr;
 +
 + if (addr == TZPC0_BASE)
 + writel(R0SIZE, tzpc-r0size);
 +
 + writel(DECPROTXSET, tzpc-decprot0set);
 + writel(DECPROTXSET, tzpc-decprot1set);
 +
 + if (addr != TZPC9_BASE) {
 + writel(DECPROTXSET, tzpc-decprot2set);
 + writel(DECPROTXSET, tzpc-decprot3set);
 + }
 + }
 +}
 diff --git a/arch/arm/include/asm/arch-exynos/tzpc.h 
 b/arch/arm/include/asm/arch-exynos/tzpc.h
 index c5eb4b1..050ad70 100644
 --- a/arch/arm/include/asm/arch-exynos/tzpc.h
 +++ b/arch/arm/include/asm/arch-exynos/tzpc.h
 @@ -47,6 +47,34 @@ struct exynos_tzpc {
   unsigned int pcellid2;
   unsigned int pcellid3;
  };
 +
 +/* TZPC : Register Offsets */
 +#define TZPC0_BASE   0x1010
 +#define TZPC1_BASE   0x1011
 +#define TZPC2_BASE   0x1012
 +#define TZPC3_BASE   0x1013
 +#define TZPC4_BASE   0x1014
 +#define TZPC5_BASE   0x1015
 +#define TZPC6_BASE   0x1016
 +#define TZPC7_BASE   0x1017
 +#define TZPC8_BASE   0x1018
 +#define TZPC9_BASE   0x1019

we did not need these defines.
please use samsung_get_base_tzpc().

 +
 +#define TZPC_BASE_OFFSET 0x1
 +
 +/*
 + * TZPC Register Value :
 + * R0SIZE: 0x0 : Size of secured ram
 + */
 +#define R0SIZE   0x0
 +
 +/*
 + * TZPC Decode Protection Register Value :
 + * DECPROTXSET: 0xFF : Set Decode region to non-secure
 + */
 +#define DECPROTXSET  0xFF
 +void tzpc_init(void);
 +
  #endif
  
  #endif
 diff --git a/board/samsung/smdk5250/Makefile b/board/samsung/smdk5250/Makefile
 index ecca9f3..f2c32ee 100644
 --- a/board/samsung/smdk5250/Makefile
 +++ b/board/samsung/smdk5250/Makefile
 @@ -28,7 +28,6 @@ SOBJS   := lowlevel_init.o
  
  COBJS:= clock_init.o
  COBJS+= 

[U-Boot] [PATCH v2 1/3] exynos: move tzpc_init to armv7/exynos

2013-03-15 Thread Inderpal Singh
tzpc_init is common for all exynos5 boards, hence move it to
armv7/exynos so that all other boards can use it.

Also update the smdk5250 Makefile and config file.

Signed-off-by: Inderpal Singh inderpal.si...@linaro.org
Acked-by: Chander Kashyap chander.kash...@linaro.org
---
 arch/arm/cpu/armv7/exynos/Makefile  |2 +-
 arch/arm/cpu/armv7/exynos/tzpc_init.c   |   48 +++
 arch/arm/include/asm/arch-exynos/tzpc.h |   28 ++
 board/samsung/smdk5250/Makefile |1 -
 board/samsung/smdk5250/setup.h  |   25 
 board/samsung/smdk5250/tzpc_init.c  |   48 ---
 include/configs/exynos5250-dt.h |2 --
 7 files changed, 77 insertions(+), 77 deletions(-)
 create mode 100644 arch/arm/cpu/armv7/exynos/tzpc_init.c
 delete mode 100644 board/samsung/smdk5250/tzpc_init.c

diff --git a/arch/arm/cpu/armv7/exynos/Makefile 
b/arch/arm/cpu/armv7/exynos/Makefile
index 9119961..b9cf921 100644
--- a/arch/arm/cpu/armv7/exynos/Makefile
+++ b/arch/arm/cpu/armv7/exynos/Makefile
@@ -22,7 +22,7 @@ include $(TOPDIR)/config.mk
 
 LIB= $(obj)lib$(SOC).o
 
-COBJS  += clock.o power.o soc.o system.o pinmux.o
+COBJS  += clock.o power.o soc.o system.o pinmux.o tzpc_init.o
 
 SRCS   := $(SOBJS:.o=.S) $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS) $(SOBJS))
diff --git a/arch/arm/cpu/armv7/exynos/tzpc_init.c 
b/arch/arm/cpu/armv7/exynos/tzpc_init.c
new file mode 100644
index 000..81adb4b
--- /dev/null
+++ b/arch/arm/cpu/armv7/exynos/tzpc_init.c
@@ -0,0 +1,48 @@
+/*
+ * Lowlevel setup for SMDK5250 board based on S5PC520
+ *
+ * Copyright (C) 2012 Samsung Electronics
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#include asm/arch/tzpc.h
+#include asm/io.h
+
+/* Setting TZPC[TrustZone Protection Controller] */
+void tzpc_init(void)
+{
+   struct exynos_tzpc *tzpc;
+   unsigned int addr;
+
+   for (addr = TZPC0_BASE; addr = TZPC9_BASE; addr += TZPC_BASE_OFFSET) {
+   tzpc = (struct exynos_tzpc *)addr;
+
+   if (addr == TZPC0_BASE)
+   writel(R0SIZE, tzpc-r0size);
+
+   writel(DECPROTXSET, tzpc-decprot0set);
+   writel(DECPROTXSET, tzpc-decprot1set);
+
+   if (addr != TZPC9_BASE) {
+   writel(DECPROTXSET, tzpc-decprot2set);
+   writel(DECPROTXSET, tzpc-decprot3set);
+   }
+   }
+}
diff --git a/arch/arm/include/asm/arch-exynos/tzpc.h 
b/arch/arm/include/asm/arch-exynos/tzpc.h
index c5eb4b1..050ad70 100644
--- a/arch/arm/include/asm/arch-exynos/tzpc.h
+++ b/arch/arm/include/asm/arch-exynos/tzpc.h
@@ -47,6 +47,34 @@ struct exynos_tzpc {
unsigned int pcellid2;
unsigned int pcellid3;
 };
+
+/* TZPC : Register Offsets */
+#define TZPC0_BASE 0x1010
+#define TZPC1_BASE 0x1011
+#define TZPC2_BASE 0x1012
+#define TZPC3_BASE 0x1013
+#define TZPC4_BASE 0x1014
+#define TZPC5_BASE 0x1015
+#define TZPC6_BASE 0x1016
+#define TZPC7_BASE 0x1017
+#define TZPC8_BASE 0x1018
+#define TZPC9_BASE 0x1019
+
+#define TZPC_BASE_OFFSET   0x1
+
+/*
+ * TZPC Register Value :
+ * R0SIZE: 0x0 : Size of secured ram
+ */
+#define R0SIZE 0x0
+
+/*
+ * TZPC Decode Protection Register Value :
+ * DECPROTXSET: 0xFF : Set Decode region to non-secure
+ */
+#define DECPROTXSET0xFF
+void tzpc_init(void);
+
 #endif
 
 #endif
diff --git a/board/samsung/smdk5250/Makefile b/board/samsung/smdk5250/Makefile
index ecca9f3..f2c32ee 100644
--- a/board/samsung/smdk5250/Makefile
+++ b/board/samsung/smdk5250/Makefile
@@ -28,7 +28,6 @@ SOBJS := lowlevel_init.o
 
 COBJS  := clock_init.o
 COBJS  += dmc_common.o dmc_init_ddr3.o
-COBJS  += tzpc_init.o
 COBJS  += smdk5250_spl.o
 
 ifndef CONFIG_SPL_BUILD
diff --git a/board/samsung/smdk5250/setup.h b/board/samsung/smdk5250/setup.h
index a159601..8c1a3f4 100644
--- a/board/samsung/smdk5250/setup.h
+++ b/board/samsung/smdk5250/setup.h
@@ -28,18 +28,6 @@
 #include config.h
 #include asm/arch/dmc.h
 
-/* TZPC :