Message ID | 1460998717-10052-1-git-send-email-ta.omasab@gmail.com |
---|---|
State | Changes Requested |
Delegated to: | Minkyu Kang |
Headers | show |
On 18 April 2016 at 10:58, Thomas Abraham <ta.omasab@gmail.com> wrote: > From: Thomas Abraham <thomas.ab@samsung.com> > > The existing Exynos 32-bit platform support needs to be realigned in > order to support newer 64-bit Exynos platforms. The driver model will > be utlized for drivers on the 64-bit Exynos platforms and so some of > the older platform support code would not be required for the newer > 64-bit Exynos platforms. > > Cc: Minkyu Kang <mk7.kang@samsung.com> > Signed-off-by: Thomas Abraham <thomas.ab@samsung.com> > --- > arch/arm/Kconfig | 1 - > arch/arm/mach-exynos/Kconfig | 14 ++++++++++++++ > arch/arm/mach-exynos/Makefile | 5 +++-- > arch/arm/mach-exynos/include/mach/cpu.h | 2 +- > arch/arm/mach-exynos/include/mach/gpio.h | 2 +- > arch/arm/mach-exynos/soc.c | 2 ++ > 6 files changed, 21 insertions(+), 5 deletions(-) > > diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig > index b82ec18..ee22a3c 100644 > --- a/arch/arm/Kconfig > +++ b/arch/arm/Kconfig > @@ -426,7 +426,6 @@ config TARGET_BCMNSP > > config ARCH_EXYNOS > bool "Samsung EXYNOS" > - select CPU_V7 > select DM > select DM_SPI_FLASH > select DM_SERIAL > diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig > index a6a7597..acab947 100644 > --- a/arch/arm/mach-exynos/Kconfig > +++ b/arch/arm/mach-exynos/Kconfig > @@ -7,30 +7,38 @@ choice > config TARGET_SMDKV310 > select SUPPORT_SPL > bool "Exynos4210 SMDKV310 board" > + select CPU_V7 > select OF_CONTROL > > config TARGET_TRATS > bool "Exynos4210 Trats board" > + select CPU_V7 > > config TARGET_S5PC210_UNIVERSAL > bool "EXYNOS4210 Universal C210 board" > + select CPU_V7 > > config TARGET_ORIGEN > bool "Exynos4412 Origen board" > + select CPU_V7 > select SUPPORT_SPL > > config TARGET_TRATS2 > bool "Exynos4412 Trat2 board" > + select CPU_V7 > > config TARGET_ODROID > bool "Exynos4412 Odroid board" > + select CPU_V7 > > config TARGET_ODROID_XU3 > bool "Exynos5422 Odroid board" > + select CPU_V7 > select OF_CONTROL > > config TARGET_ARNDALE > bool "Exynos5250 Arndale board" > + select CPU_V7 > select CPU_V7_HAS_NONSEC > select CPU_V7_HAS_VIRT > select SUPPORT_SPL > @@ -38,32 +46,38 @@ config TARGET_ARNDALE > > config TARGET_SMDK5250 > bool "SMDK5250 board" > + select CPU_V7 > select SUPPORT_SPL > select OF_CONTROL > > config TARGET_SNOW > bool "Snow board" > + select CPU_V7 > select SUPPORT_SPL > select OF_CONTROL > > config TARGET_SPRING > bool "Spring board" > + select CPU_V7 > select SUPPORT_SPL > select OF_CONTROL > select SPL_DISABLE_OF_CONTROL > > config TARGET_SMDK5420 > bool "SMDK5420 board" > + select CPU_V7 > select SUPPORT_SPL > select OF_CONTROL > > config TARGET_PEACH_PI > bool "Peach Pi board" > + select CPU_V7 > select SUPPORT_SPL > select OF_CONTROL > > config TARGET_PEACH_PIT > bool "Peach Pit board" > + select CPU_V7 > select SUPPORT_SPL > select OF_CONTROL > > diff --git a/arch/arm/mach-exynos/Makefile b/arch/arm/mach-exynos/Makefile > index 8542f89..f3c07b7 100644 > --- a/arch/arm/mach-exynos/Makefile > +++ b/arch/arm/mach-exynos/Makefile > @@ -5,7 +5,8 @@ > # SPDX-License-Identifier: GPL-2.0+ > # > > -obj-y += clock.o power.o soc.o system.o pinmux.o tzpc.o > +obj-y += soc.o > +obj-$(CONFIG_CPU_V7) += clock.o pinmux.o power.o system.o > > obj-$(CONFIG_EXYNOS5420) += sec_boot.o > > @@ -13,6 +14,6 @@ ifdef CONFIG_SPL_BUILD > obj-$(CONFIG_EXYNOS5) += clock_init_exynos5.o > obj-$(CONFIG_EXYNOS5) += dmc_common.o dmc_init_ddr3.o > obj-$(CONFIG_EXYNOS4210)+= dmc_init_exynos4.o clock_init_exynos4.o > -obj-y += spl_boot.o > +obj-y += spl_boot.o tzpc.o > obj-y += lowlevel_init.o > endif > diff --git a/arch/arm/mach-exynos/include/mach/cpu.h b/arch/arm/mach-exynos/include/mach/cpu.h > index 14a1692..f12e3d6 100644 > --- a/arch/arm/mach-exynos/include/mach/cpu.h > +++ b/arch/arm/mach-exynos/include/mach/cpu.h > @@ -270,7 +270,7 @@ IS_EXYNOS_TYPE(exynos5420, 0x5420) > IS_EXYNOS_TYPE(exynos5422, 0x5422) > > #define SAMSUNG_BASE(device, base) \ > -static inline unsigned int __attribute__((no_instrument_function)) \ > +static inline unsigned long __attribute__((no_instrument_function)) \ > samsung_get_base_##device(void) \ > { \ > if (cpu_is_exynos4()) { \ > diff --git a/arch/arm/mach-exynos/include/mach/gpio.h b/arch/arm/mach-exynos/include/mach/gpio.h > index 7fc8e61..81363bd 100644 > --- a/arch/arm/mach-exynos/include/mach/gpio.h > +++ b/arch/arm/mach-exynos/include/mach/gpio.h > @@ -1349,7 +1349,7 @@ enum exynos5420_gpio_pin { > }; > > struct gpio_info { > - unsigned int reg_addr; /* Address of register for this part */ > + unsigned long reg_addr; /* Address of register for this part */ > unsigned int max_gpio; /* Maximum GPIO in this part */ > }; > > diff --git a/arch/arm/mach-exynos/soc.c b/arch/arm/mach-exynos/soc.c > index 0f116b1..737a8dd 100644 > --- a/arch/arm/mach-exynos/soc.c > +++ b/arch/arm/mach-exynos/soc.c > @@ -11,7 +11,9 @@ > > void reset_cpu(ulong addr) > { > +#ifdef CONFIG_CPU_V7 > writel(0x1, samsung_get_base_swreset()); > +#endif > } > > #ifndef CONFIG_SYS_DCACHE_OFF > -- > 1.6.6.rc2 > Reviewed-by: Simon Glass <sjg@chromium.org>
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index b82ec18..ee22a3c 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -426,7 +426,6 @@ config TARGET_BCMNSP config ARCH_EXYNOS bool "Samsung EXYNOS" - select CPU_V7 select DM select DM_SPI_FLASH select DM_SERIAL diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig index a6a7597..acab947 100644 --- a/arch/arm/mach-exynos/Kconfig +++ b/arch/arm/mach-exynos/Kconfig @@ -7,30 +7,38 @@ choice config TARGET_SMDKV310 select SUPPORT_SPL bool "Exynos4210 SMDKV310 board" + select CPU_V7 select OF_CONTROL config TARGET_TRATS bool "Exynos4210 Trats board" + select CPU_V7 config TARGET_S5PC210_UNIVERSAL bool "EXYNOS4210 Universal C210 board" + select CPU_V7 config TARGET_ORIGEN bool "Exynos4412 Origen board" + select CPU_V7 select SUPPORT_SPL config TARGET_TRATS2 bool "Exynos4412 Trat2 board" + select CPU_V7 config TARGET_ODROID bool "Exynos4412 Odroid board" + select CPU_V7 config TARGET_ODROID_XU3 bool "Exynos5422 Odroid board" + select CPU_V7 select OF_CONTROL config TARGET_ARNDALE bool "Exynos5250 Arndale board" + select CPU_V7 select CPU_V7_HAS_NONSEC select CPU_V7_HAS_VIRT select SUPPORT_SPL @@ -38,32 +46,38 @@ config TARGET_ARNDALE config TARGET_SMDK5250 bool "SMDK5250 board" + select CPU_V7 select SUPPORT_SPL select OF_CONTROL config TARGET_SNOW bool "Snow board" + select CPU_V7 select SUPPORT_SPL select OF_CONTROL config TARGET_SPRING bool "Spring board" + select CPU_V7 select SUPPORT_SPL select OF_CONTROL select SPL_DISABLE_OF_CONTROL config TARGET_SMDK5420 bool "SMDK5420 board" + select CPU_V7 select SUPPORT_SPL select OF_CONTROL config TARGET_PEACH_PI bool "Peach Pi board" + select CPU_V7 select SUPPORT_SPL select OF_CONTROL config TARGET_PEACH_PIT bool "Peach Pit board" + select CPU_V7 select SUPPORT_SPL select OF_CONTROL diff --git a/arch/arm/mach-exynos/Makefile b/arch/arm/mach-exynos/Makefile index 8542f89..f3c07b7 100644 --- a/arch/arm/mach-exynos/Makefile +++ b/arch/arm/mach-exynos/Makefile @@ -5,7 +5,8 @@ # SPDX-License-Identifier: GPL-2.0+ # -obj-y += clock.o power.o soc.o system.o pinmux.o tzpc.o +obj-y += soc.o +obj-$(CONFIG_CPU_V7) += clock.o pinmux.o power.o system.o obj-$(CONFIG_EXYNOS5420) += sec_boot.o @@ -13,6 +14,6 @@ ifdef CONFIG_SPL_BUILD obj-$(CONFIG_EXYNOS5) += clock_init_exynos5.o obj-$(CONFIG_EXYNOS5) += dmc_common.o dmc_init_ddr3.o obj-$(CONFIG_EXYNOS4210)+= dmc_init_exynos4.o clock_init_exynos4.o -obj-y += spl_boot.o +obj-y += spl_boot.o tzpc.o obj-y += lowlevel_init.o endif diff --git a/arch/arm/mach-exynos/include/mach/cpu.h b/arch/arm/mach-exynos/include/mach/cpu.h index 14a1692..f12e3d6 100644 --- a/arch/arm/mach-exynos/include/mach/cpu.h +++ b/arch/arm/mach-exynos/include/mach/cpu.h @@ -270,7 +270,7 @@ IS_EXYNOS_TYPE(exynos5420, 0x5420) IS_EXYNOS_TYPE(exynos5422, 0x5422) #define SAMSUNG_BASE(device, base) \ -static inline unsigned int __attribute__((no_instrument_function)) \ +static inline unsigned long __attribute__((no_instrument_function)) \ samsung_get_base_##device(void) \ { \ if (cpu_is_exynos4()) { \ diff --git a/arch/arm/mach-exynos/include/mach/gpio.h b/arch/arm/mach-exynos/include/mach/gpio.h index 7fc8e61..81363bd 100644 --- a/arch/arm/mach-exynos/include/mach/gpio.h +++ b/arch/arm/mach-exynos/include/mach/gpio.h @@ -1349,7 +1349,7 @@ enum exynos5420_gpio_pin { }; struct gpio_info { - unsigned int reg_addr; /* Address of register for this part */ + unsigned long reg_addr; /* Address of register for this part */ unsigned int max_gpio; /* Maximum GPIO in this part */ }; diff --git a/arch/arm/mach-exynos/soc.c b/arch/arm/mach-exynos/soc.c index 0f116b1..737a8dd 100644 --- a/arch/arm/mach-exynos/soc.c +++ b/arch/arm/mach-exynos/soc.c @@ -11,7 +11,9 @@ void reset_cpu(ulong addr) { +#ifdef CONFIG_CPU_V7 writel(0x1, samsung_get_base_swreset()); +#endif } #ifndef CONFIG_SYS_DCACHE_OFF