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

login
register
mail settings
Submitter Inderpal Singh
Date March 15, 2013, 6:23 a.m.
Message ID <1363328602-5676-2-git-send-email-inderpal.singh@linaro.org>
Download mbox | patch
Permalink /patch/227853/
State Superseded
Delegated to: Minkyu Kang
Headers show

Comments

Inderpal Singh - March 15, 2013, 6:23 a.m.
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.singh@linaro.org>
Acked-by: Chander Kashyap <chander.kashyap@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
Minkyu Kang - March 29, 2013, 2:57 a.m.
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.singh@linaro.org>
> Acked-by: Chander Kashyap <chander.kashyap@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 0000000..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		0x10100000
> +#define TZPC1_BASE		0x10110000
> +#define TZPC2_BASE		0x10120000
> +#define TZPC3_BASE		0x10130000
> +#define TZPC4_BASE		0x10140000
> +#define TZPC5_BASE		0x10150000
> +#define TZPC6_BASE		0x10160000
> +#define TZPC7_BASE		0x10170000
> +#define TZPC8_BASE		0x10180000
> +#define TZPC9_BASE		0x10190000

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

> +
> +#define TZPC_BASE_OFFSET		0x10000
> +
> +/*
> + * 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	+= 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 : Register Offsets */
> -#define TZPC0_BASE		0x10100000
> -#define TZPC1_BASE		0x10110000
> -#define TZPC2_BASE		0x10120000
> -#define TZPC3_BASE		0x10130000
> -#define TZPC4_BASE		0x10140000
> -#define TZPC5_BASE		0x10150000
> -#define TZPC6_BASE		0x10160000
> -#define TZPC7_BASE		0x10170000
> -#define TZPC8_BASE		0x10180000
> -#define TZPC9_BASE		0x10190000
> -
>  /* APLL_CON1	*/
>  #define APLL_CON1_VAL	(0x00203800)
>  
> @@ -458,18 +446,6 @@
>  /* CLK_GATE_IP_DISP1 */
>  #define CLK_GATE_DP1_ALLOW	(1 << 4)
>  
> -/*
> - * 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
> -
>  #define DDR3PHY_CTRL_PHY_RESET	(1 << 0)
>  #define DDR3PHY_CTRL_PHY_RESET_OFF	(0 << 0)
>  
> @@ -590,5 +566,4 @@ void update_reset_dll(struct exynos5_dmc *, enum ddr_mode);
>  void sdelay(unsigned long);
>  void mem_ctrl_init(void);
>  void system_clock_init(void);
> -void tzpc_init(void);
>  #endif
> diff --git a/board/samsung/smdk5250/tzpc_init.c b/board/samsung/smdk5250/tzpc_init.c
> deleted file mode 100644
> index c833541..0000000
> --- a/board/samsung/smdk5250/tzpc_init.c
> +++ /dev/null
> @@ -1,48 +0,0 @@
> -/*
> - * 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"setup.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/include/configs/exynos5250-dt.h b/include/configs/exynos5250-dt.h
> index c03dcf7..8ac05aa 100644
> --- a/include/configs/exynos5250-dt.h
> +++ b/include/configs/exynos5250-dt.h
> @@ -87,8 +87,6 @@
>  #define CONFIG_EXTRA_ENV_SETTINGS \
>  	EXYNOS_DEVICE_SETTINGS
>  
> -#define TZPC_BASE_OFFSET		0x10000
> -
>  /* SD/MMC configuration */
>  #define CONFIG_GENERIC_MMC
>  #define CONFIG_MMC
> 

Thanks,
Minkyu Kang.
Inderpal Singh - April 5, 2013, 9:07 a.m.
Dear Minkyu,

Thanks for the review.


On 29 March 2013 08:27, Minkyu Kang <mk7.kang@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.singh@linaro.org>
> > Acked-by: Chander Kashyap <chander.kashyap@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 0000000..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           0x10100000
> > +#define TZPC1_BASE           0x10110000
> > +#define TZPC2_BASE           0x10120000
> > +#define TZPC3_BASE           0x10130000
> > +#define TZPC4_BASE           0x10140000
> > +#define TZPC5_BASE           0x10150000
> > +#define TZPC6_BASE           0x10160000
> > +#define TZPC7_BASE           0x10170000
> > +#define TZPC8_BASE           0x10180000
> > +#define TZPC9_BASE           0x10190000
>
> 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             0x10000
> > +
> > +/*
> > + * 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        += 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 : Register Offsets */
> > -#define TZPC0_BASE           0x10100000
> > -#define TZPC1_BASE           0x10110000
> > -#define TZPC2_BASE           0x10120000
> > -#define TZPC3_BASE           0x10130000
> > -#define TZPC4_BASE           0x10140000
> > -#define TZPC5_BASE           0x10150000
> > -#define TZPC6_BASE           0x10160000
> > -#define TZPC7_BASE           0x10170000
> > -#define TZPC8_BASE           0x10180000
> > -#define TZPC9_BASE           0x10190000
> > -
> >  /* APLL_CON1 */
> >  #define APLL_CON1_VAL        (0x00203800)
> >
> > @@ -458,18 +446,6 @@
> >  /* CLK_GATE_IP_DISP1 */
> >  #define CLK_GATE_DP1_ALLOW   (1 << 4)
> >
> > -/*
> > - * 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
> > -
> >  #define DDR3PHY_CTRL_PHY_RESET       (1 << 0)
> >  #define DDR3PHY_CTRL_PHY_RESET_OFF   (0 << 0)
> >
> > @@ -590,5 +566,4 @@ void update_reset_dll(struct exynos5_dmc *, enum
> ddr_mode);
> >  void sdelay(unsigned long);
> >  void mem_ctrl_init(void);
> >  void system_clock_init(void);
> > -void tzpc_init(void);
> >  #endif
> > diff --git a/board/samsung/smdk5250/tzpc_init.c
> b/board/samsung/smdk5250/tzpc_init.c
> > deleted file mode 100644
> > index c833541..0000000
> > --- a/board/samsung/smdk5250/tzpc_init.c
> > +++ /dev/null
> > @@ -1,48 +0,0 @@
> > -/*
> > - * 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"setup.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/include/configs/exynos5250-dt.h
> b/include/configs/exynos5250-dt.h
> > index c03dcf7..8ac05aa 100644
> > --- a/include/configs/exynos5250-dt.h
> > +++ b/include/configs/exynos5250-dt.h
> > @@ -87,8 +87,6 @@
> >  #define CONFIG_EXTRA_ENV_SETTINGS \
> >       EXYNOS_DEVICE_SETTINGS
> >
> > -#define TZPC_BASE_OFFSET             0x10000
> > -
> >  /* SD/MMC configuration */
> >  #define CONFIG_GENERIC_MMC
> >  #define CONFIG_MMC
> >
>
> Thanks,
> Minkyu Kang.
>
>

Patch

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 0000000..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		0x10100000
+#define TZPC1_BASE		0x10110000
+#define TZPC2_BASE		0x10120000
+#define TZPC3_BASE		0x10130000
+#define TZPC4_BASE		0x10140000
+#define TZPC5_BASE		0x10150000
+#define TZPC6_BASE		0x10160000
+#define TZPC7_BASE		0x10170000
+#define TZPC8_BASE		0x10180000
+#define TZPC9_BASE		0x10190000
+
+#define TZPC_BASE_OFFSET		0x10000
+
+/*
+ * 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	+= 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 : Register Offsets */
-#define TZPC0_BASE		0x10100000
-#define TZPC1_BASE		0x10110000
-#define TZPC2_BASE		0x10120000
-#define TZPC3_BASE		0x10130000
-#define TZPC4_BASE		0x10140000
-#define TZPC5_BASE		0x10150000
-#define TZPC6_BASE		0x10160000
-#define TZPC7_BASE		0x10170000
-#define TZPC8_BASE		0x10180000
-#define TZPC9_BASE		0x10190000
-
 /* APLL_CON1	*/
 #define APLL_CON1_VAL	(0x00203800)
 
@@ -458,18 +446,6 @@ 
 /* CLK_GATE_IP_DISP1 */
 #define CLK_GATE_DP1_ALLOW	(1 << 4)
 
-/*
- * 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
-
 #define DDR3PHY_CTRL_PHY_RESET	(1 << 0)
 #define DDR3PHY_CTRL_PHY_RESET_OFF	(0 << 0)
 
@@ -590,5 +566,4 @@  void update_reset_dll(struct exynos5_dmc *, enum ddr_mode);
 void sdelay(unsigned long);
 void mem_ctrl_init(void);
 void system_clock_init(void);
-void tzpc_init(void);
 #endif
diff --git a/board/samsung/smdk5250/tzpc_init.c b/board/samsung/smdk5250/tzpc_init.c
deleted file mode 100644
index c833541..0000000
--- a/board/samsung/smdk5250/tzpc_init.c
+++ /dev/null
@@ -1,48 +0,0 @@ 
-/*
- * 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"setup.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/include/configs/exynos5250-dt.h b/include/configs/exynos5250-dt.h
index c03dcf7..8ac05aa 100644
--- a/include/configs/exynos5250-dt.h
+++ b/include/configs/exynos5250-dt.h
@@ -87,8 +87,6 @@ 
 #define CONFIG_EXTRA_ENV_SETTINGS \
 	EXYNOS_DEVICE_SETTINGS
 
-#define TZPC_BASE_OFFSET		0x10000
-
 /* SD/MMC configuration */
 #define CONFIG_GENERIC_MMC
 #define CONFIG_MMC