[U-Boot] [PATCH 3/7] rockchip: rk3368: Add core start-up code for RK3368

Simon Glass sjg at chromium.org
Sat Apr 29 00:26:11 UTC 2017


Hi Andy,

On 20 April 2017 at 20:31, Andy Yan <andy.yan at rock-chips.com> wrote:
> From: Andreas Färber <afaerber at suse.de>
>
> The RK3368 is an octa-core Cortex-A53 SoC from Rockchip.
> This adds basic support to chain-load U-Boot from Rockchip's
> miniloader.
>
> Signed-off-by: Andreas Färber <afaerber at suse.de>
> Signed-off-by: Andy Yan <andy.yan at rock-chips.com>
> ---
>
>  arch/arm/dts/rk3368.dtsi                      | 1090 +++++++++++++++++++++++++
>  arch/arm/mach-rockchip/Kconfig                |   13 +
>  arch/arm/mach-rockchip/Makefile               |    1 +
>  arch/arm/mach-rockchip/rk3368/Kconfig         |    8 +
>  arch/arm/mach-rockchip/rk3368/Makefile        |    8 +
>  arch/arm/mach-rockchip/rk3368/clk_rk3368.c    |   32 +
>  arch/arm/mach-rockchip/rk3368/rk3368.c        |   84 ++
>  arch/arm/mach-rockchip/rk3368/syscon_rk3368.c |   25 +
>  include/configs/rk3368_common.h               |   43 +
>  include/dt-bindings/clock/rk3368-cru.h        |  384 +++++++++
>  10 files changed, 1688 insertions(+)
>  create mode 100644 arch/arm/dts/rk3368.dtsi
>  create mode 100644 arch/arm/mach-rockchip/rk3368/Kconfig
>  create mode 100644 arch/arm/mach-rockchip/rk3368/Makefile
>  create mode 100644 arch/arm/mach-rockchip/rk3368/clk_rk3368.c
>  create mode 100644 arch/arm/mach-rockchip/rk3368/rk3368.c
>  create mode 100644 arch/arm/mach-rockchip/rk3368/syscon_rk3368.c
>  create mode 100644 include/configs/rk3368_common.h
>  create mode 100644 include/dt-bindings/clock/rk3368-cru.h
>

Reviewed-by: Simon Glass <sjg at chromium.org>

[...]
> diff --git a/arch/arm/mach-rockchip/Kconfig b/arch/arm/mach-rockchip/Kconfig
> index 2b752ad..2d7afab 100644
> --- a/arch/arm/mach-rockchip/Kconfig
> +++ b/arch/arm/mach-rockchip/Kconfig
> @@ -49,6 +49,18 @@ config ROCKCHIP_RK3328
>           and video codec support. Peripherals include Gigabit Ethernet,
>           USB2 host and OTG, SDIO, I2S, UARTs, SPI, I2C and PWMs.
>
> +config ROCKCHIP_RK3368
> +       bool "Support Rockchip RK3368"
> +       select ARM64
> +       select SYS_NS16550
> +       help
> +         The Rockchip RK3328 is a ARM-based SoC with a octa-core Cortex-A53.
> +         including NEON and GPU, 512KB L2 cache for big cluster and 256 KB
> +         L2 cache for little cluser, PowerVR G6110 based graphics, one video
> +         output processor supporting LVDS、HDMI、eDP, several DDR3 options
> +         and video codec support. Peripherals include Gigabit Ethernet,
> +         USB2 host and OTG, SDIO, I2S, UARTs, SPI, I2C and PWMs.

Great!

> +
>  config ROCKCHIP_RK3399
>         bool "Support Rockchip RK3399"
>         select ARM64
> @@ -84,5 +96,6 @@ source "arch/arm/mach-rockchip/rk3036/Kconfig"
>  source "arch/arm/mach-rockchip/rk3188/Kconfig"
>  source "arch/arm/mach-rockchip/rk3288/Kconfig"
>  source "arch/arm/mach-rockchip/rk3328/Kconfig"
> +source "arch/arm/mach-rockchip/rk3368/Kconfig"
>  source "arch/arm/mach-rockchip/rk3399/Kconfig"
>  endif
> diff --git a/arch/arm/mach-rockchip/Makefile b/arch/arm/mach-rockchip/Makefile
> index 6b251c7..bb13ffe 100644
> --- a/arch/arm/mach-rockchip/Makefile
> +++ b/arch/arm/mach-rockchip/Makefile
> @@ -29,4 +29,5 @@ endif
>
>  obj-$(CONFIG_ROCKCHIP_RK3288) += rk3288/
>  obj-$(CONFIG_ROCKCHIP_RK3328) += rk3328/
> +obj-$(CONFIG_ROCKCHIP_RK3368) += rk3368/
>  obj-$(CONFIG_ROCKCHIP_RK3399) += rk3399/
> diff --git a/arch/arm/mach-rockchip/rk3368/Kconfig b/arch/arm/mach-rockchip/rk3368/Kconfig
> new file mode 100644
> index 0000000..ee9c6fb
> --- /dev/null
> +++ b/arch/arm/mach-rockchip/rk3368/Kconfig
> @@ -0,0 +1,8 @@
> +if ROCKCHIP_RK3368
> +
> +config SYS_SOC
> +       default "rockchip"
> +
> +config SYS_MALLOC_F_LEN
> +       default 0x0800

I think this is the usual default, so you should be able to remove this?

[...]

> diff --git a/arch/arm/mach-rockchip/rk3368/rk3368.c b/arch/arm/mach-rockchip/rk3368/rk3368.c
> new file mode 100644
> index 0000000..7b2bdd0
> --- /dev/null
> +++ b/arch/arm/mach-rockchip/rk3368/rk3368.c
> @@ -0,0 +1,84 @@
> +/*
> + * Copyright (c) 2016 Rockchip Electronics Co., Ltd
> + * Copyright (c) 2016 Andreas Färber
> + *
> + * SPDX-License-Identifier:     GPL-2.0+
> + */
> +
> +#include <common.h>
> +#include <asm/arch/cru_rk3368.h>
> +#include <asm/arch/grf_rk3368.h>
> +#include <asm/armv8/mmu.h>
> +#include <asm/io.h>

The above two should go below common.h

[...]

> diff --git a/arch/arm/mach-rockchip/rk3368/syscon_rk3368.c b/arch/arm/mach-rockchip/rk3368/syscon_rk3368.c
> new file mode 100644
> index 0000000..cefee0a
> --- /dev/null
> +++ b/arch/arm/mach-rockchip/rk3368/syscon_rk3368.c
> @@ -0,0 +1,25 @@
> +/*
> + * (C) Copyright 2017 Rockchip Electronics Co., Ltd
> + * Author: Andy Yan <andy.yan at rock-chips.com>
> + * SPDX-License-Identifier:    GPL-2.0+
> + */
> +
> +#include <common.h>
> +#include <asm/arch/clock.h>

Should go last

> +#include <dm.h>
> +#include <syscon.h>
> +
> +static const struct udevice_id rk3368_syscon_ids[] = {
> +       { .compatible = "rockchip,rk3368-grf",
> +         .data = ROCKCHIP_SYSCON_GRF },
> +       { .compatible = "rockchip,rk3368-pmugrf",
> +         .data = ROCKCHIP_SYSCON_PMUGRF },
> +       { }
> +};
> +
> +U_BOOT_DRIVER(syscon_rk3368) = {
> +       .name = "rk3368_syscon",
> +       .id = UCLASS_SYSCON,
> +       .of_match = rk3368_syscon_ids,
> +};
> +

[..]

Regards,
Simon


More information about the U-Boot mailing list