[U-Boot] [PATCH v2 1/3] exynos: move tzpc_init to armv7/exynos
Inderpal Singh
inderpal.singh at linaro.org
Fri Apr 5 11:07:03 CEST 2013
Dear Minkyu,
Thanks for the review.
On 29 March 2013 08:27, Minkyu Kang <mk7.kang at 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 at linaro.org>
> > Acked-by: Chander Kashyap <chander.kashyap at 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.
>
>
More information about the U-Boot
mailing list