[U-Boot] [PATCH v1 11/12] rockchip: rk3036: Add core Soc start-up code
Simon Glass
sjg at chromium.org
Thu Oct 22 16:08:17 CEST 2015
Hi Lin,
On 20 October 2015 at 20:37, Lin Huang <hl at rock-chips.com> wrote:
> Signed-off-by: Lin Huang <hl at rock-chips.com>
Please add a commit message.
> ---
> Changes in v1:
> - clean copyright announcement
>
> arch/arm/mach-rockchip/Kconfig | 10 ++-
> arch/arm/mach-rockchip/Makefile | 1 +
> arch/arm/mach-rockchip/board.c | 13 +++-
> arch/arm/mach-rockchip/rk3036/Kconfig | 11 ++++
> include/configs/rk3036_common.h | 116 ++++++++++++++++++++++++++++++++++
> 5 files changed, 149 insertions(+), 2 deletions(-)
> create mode 100644 arch/arm/mach-rockchip/rk3036/Kconfig
> create mode 100644 include/configs/rk3036_common.h
>
> diff --git a/arch/arm/mach-rockchip/Kconfig b/arch/arm/mach-rockchip/Kconfig
> index 15cd380..72d61d1 100644
> --- a/arch/arm/mach-rockchip/Kconfig
> +++ b/arch/arm/mach-rockchip/Kconfig
> @@ -11,6 +11,14 @@ config ROCKCHIP_RK3288
> and video codec support. Peripherals include Gigabit Ethernet,
> USB2 host and OTG, SDIO, I2S, UART,s, SPI, I2C and PWMs.
>
> +config ROCKCHIP_RK3036
> + bool "Support Rockchip RK3036"
> + help
> + The Rockchip RK3036 is a ARM-based SoC with a dual-core Cortex-A7
> + including NEON and GPU, Mali-400 graphics, several DDR3 options
> + and video codec support. Peripherals include Gigabit Ethernet,
> + USB2 host and OTG, SDIO, I2S, UART, SPI, I2C and PWMs.
> +
> config SYS_MALLOC_F
> default y
>
> @@ -39,5 +47,5 @@ config ROCKCHIP_SERIAL
> default y
>
> source "arch/arm/mach-rockchip/rk3288/Kconfig"
> -
> +source "arch/arm/mach-rockchip/rk3036/Kconfig"
> endif
> diff --git a/arch/arm/mach-rockchip/Makefile b/arch/arm/mach-rockchip/Makefile
> index 5a4e383..1cdbc34 100644
> --- a/arch/arm/mach-rockchip/Makefile
> +++ b/arch/arm/mach-rockchip/Makefile
> @@ -11,3 +11,4 @@ obj-y += board.o
> endif
> obj-y += common.o
> obj-$(CONFIG_ROCKCHIP_RK3288) += rk3288/
> +obj-$(CONFIG_ROCKCHIP_RK3036) += rk3036/
> diff --git a/arch/arm/mach-rockchip/board.c b/arch/arm/mach-rockchip/board.c
> index 789a801..d1d8856 100644
> --- a/arch/arm/mach-rockchip/board.c
> +++ b/arch/arm/mach-rockchip/board.c
> @@ -3,6 +3,8 @@
> *
> * SPDX-License-Identifier: GPL-2.0+
> */
> +
> +#include <asm/io.h>
> #include <asm/arch/timer.h>
> #include <common.h>
> #include <dm.h>
> @@ -23,6 +25,7 @@ int board_init(void)
>
> int dram_init(void)
> {
> +#ifdef CONFIG_SPL_BUILD
> struct ram_info ram;
> struct udevice *dev;
> int ret;
> @@ -37,8 +40,16 @@ int dram_init(void)
> debug("Cannot get DRAM size: %d\n", ret);
> return ret;
> }
> - debug("SDRAM base=%lx, size=%x\n", ram.base, ram.size);
> gd->ram_size = ram.size;
> +#else
> + int i;
> + unsigned int addr;
> +
> + for (i = 0; i < CONFIG_NR_DRAM_BANKS; i++) {
> + addr = CONFIG_SYS_SDRAM_BASE + (i * SDRAM_BANK_SIZE);
> + gd->ram_size += get_ram_size((long *)addr, SDRAM_BANK_SIZE);
> + }
I think this code should go in a new RAM driver - see the RK3288
version. All it needs to do is to implement the get_info() method.
Of course we need to figure out the proper RAM init too in SPL, but it
sounds like that would not use driver model due to the 8KB space
constraint.
> +config TARGET_EVB_RK3036
> + bool "EVB_RK3036"
> +
Please add some help for this, describing the board.
Regards,
Simon
More information about the U-Boot
mailing list