On Tue, 2014-10-07 at 15:11 +0800, Chen-Yu Tsai wrote: > The basic blocks of the A23 are similar to the A31 (sun6i). Re-use > sun6i code for initial clock, gpio, and uart setup.
Do I take it that sun8i is also in the same position wrt DRAM bring up code not existing yet and there therefore being no SPL yet? > Signed-off-by: Chen-Yu Tsai <[email protected]> > --- > arch/arm/Kconfig | 3 +++ > arch/arm/cpu/armv7/sunxi/Makefile | 2 ++ > arch/arm/cpu/armv7/sunxi/board.c | 3 ++- > arch/arm/cpu/armv7/sunxi/cpu_info.c | 2 ++ > arch/arm/include/asm/arch-sunxi/clock.h | 2 +- > board/sunxi/Kconfig | 9 ++++++++- > include/configs/sun8i.h | 23 +++++++++++++++++++++++ > 7 files changed, 41 insertions(+), 3 deletions(-) > create mode 100644 include/configs/sun8i.h > > diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig > index e3e7e78..cb691b2 100644 > --- a/arch/arm/Kconfig > +++ b/arch/arm/Kconfig > @@ -450,6 +450,9 @@ config TARGET_SUN6I > config TARGET_SUN7I > bool "Support sun7i" > > +config TARGET_SUN8I > + bool "Support sun8i" > + > config TARGET_SNOWBALL > bool "Support snowball" > > diff --git a/arch/arm/cpu/armv7/sunxi/Makefile > b/arch/arm/cpu/armv7/sunxi/Makefile > index 2a42dca..24f1dae 100644 > --- a/arch/arm/cpu/armv7/sunxi/Makefile > +++ b/arch/arm/cpu/armv7/sunxi/Makefile > @@ -12,10 +12,12 @@ obj-y += board.o > obj-y += clock.o > obj-y += pinmux.o > obj-$(CONFIG_SUN6I) += prcm.o > +obj-$(CONFIG_SUN8I) += prcm.o > obj-$(CONFIG_SUN4I) += clock_sun4i.o > obj-$(CONFIG_SUN5I) += clock_sun4i.o > obj-$(CONFIG_SUN6I) += clock_sun6i.o > obj-$(CONFIG_SUN7I) += clock_sun4i.o > +obj-$(CONFIG_SUN8I) += clock_sun6i.o > > ifndef CONFIG_SPL_BUILD > obj-y += cpu_info.o > diff --git a/arch/arm/cpu/armv7/sunxi/board.c > b/arch/arm/cpu/armv7/sunxi/board.c > index 29d45b6..61c1ba9 100644 > --- a/arch/arm/cpu/armv7/sunxi/board.c > +++ b/arch/arm/cpu/armv7/sunxi/board.c > @@ -100,7 +100,8 @@ void reset_cpu(ulong addr) > /* do some early init */ > void s_init(void) > { > -#if !defined CONFIG_SPL_BUILD && (defined CONFIG_SUN7I || defined > CONFIG_SUN6I) > +#if !defined CONFIG_SPL_BUILD && (defined CONFIG_SUN7I || \ > + defined CONFIG_SUN6I || defined CONFIG_SUN8I) At some point we should refactor this to use a common Kconfig thing (SUNXI_SMP etc) which the relevant targets select. > /* Enable SMP mode for CPU0, by setting bit 6 of Auxiliary Ctl reg */ > asm volatile( > "mrc p15, 0, r0, c1, c0, 1\n" > diff --git a/arch/arm/cpu/armv7/sunxi/cpu_info.c > b/arch/arm/cpu/armv7/sunxi/cpu_info.c > index 40c4e13..4f2a09c 100644 > --- a/arch/arm/cpu/armv7/sunxi/cpu_info.c > +++ b/arch/arm/cpu/armv7/sunxi/cpu_info.c > @@ -27,6 +27,8 @@ int print_cpuinfo(void) > puts("CPU: Allwinner A31 (SUN6I)\n"); > #elif defined CONFIG_SUN7I > puts("CPU: Allwinner A20 (SUN7I)\n"); > +#elif defined CONFIG_SUN8I > + puts("CPU: Allwinner A23 (SUN8I)\n"); > #else > #warning Please update cpu_info.c with correct CPU information > puts("CPU: SUNXI Family\n"); > diff --git a/arch/arm/include/asm/arch-sunxi/clock.h > b/arch/arm/include/asm/arch-sunxi/clock.h > index 8f5d860..012c2af 100644 > --- a/arch/arm/include/asm/arch-sunxi/clock.h > +++ b/arch/arm/include/asm/arch-sunxi/clock.h > @@ -15,7 +15,7 @@ > #define CLK_GATE_CLOSE 0x0 > > /* clock control module regs definition */ > -#ifdef CONFIG_SUN6I > +#if defined(CONFIG_SUN6I) || defined(CONFIG_SUN8I) > #include <asm/arch/clock_sun6i.h> > #else > #include <asm/arch/clock_sun4i.h> > diff --git a/board/sunxi/Kconfig b/board/sunxi/Kconfig > index 05defac..16f6db4 100644 > --- a/board/sunxi/Kconfig > +++ b/board/sunxi/Kconfig > @@ -27,7 +27,14 @@ config SYS_CONFIG_NAME > > endif > > -if TARGET_SUN4I || TARGET_SUN5I || TARGET_SUN6I || TARGET_SUN7I > +if TARGET_SUN8I > + > +config SYS_CONFIG_NAME > + default "sun8i" > + > +endif > + > +if TARGET_SUN4I || TARGET_SUN5I || TARGET_SUN6I || TARGET_SUN7I || > TARGET_SUN8I > > config SYS_CPU > default "armv7" > diff --git a/include/configs/sun8i.h b/include/configs/sun8i.h > new file mode 100644 > index 0000000..1c1a7cd > --- /dev/null > +++ b/include/configs/sun8i.h > @@ -0,0 +1,23 @@ > +/* > + * (C) Copyright 2014 Chen-Yu Tsai <[email protected]> > + * > + * Configuration settings for the Allwinner A23 (sun8i) CPU > + * > + * SPDX-License-Identifier: GPL-2.0+ > + */ > + > +#ifndef __CONFIG_H > +#define __CONFIG_H > + > +/* > + * A23 specific configuration > + */ > +#define CONFIG_SUN8I /* sun8i SoC generation */ > +#define CONFIG_SYS_PROMPT "sun8i# " > + > +/* > + * Include common sunxi configuration where most the settings are > + */ > +#include <configs/sunxi-common.h> > + > +#endif /* __CONFIG_H */ _______________________________________________ U-Boot mailing list [email protected] http://lists.denx.de/mailman/listinfo/u-boot

