Message ID | 1363328602-5676-2-git-send-email-inderpal.singh@linaro.org |
---|---|
State | Superseded |
Delegated to: | Minkyu Kang |
Headers | show |
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.
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. > >
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