[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