rockchip: Add RV1108 SPL support

add rv1108 spl support so we can load u-boot from SPL

Change-Id: I9d36cd590a22d26a46dd84bc3ee0c761048f7b01
Signed-off-by: Zhihuan He <huan.he@rock-chips.com>
This commit is contained in:
Zhihuan He 2018-02-01 15:40:55 +08:00 committed by Kever Yang
parent 95b95808a8
commit 52f7b21d4b
7 changed files with 64 additions and 3 deletions

View File

@ -214,6 +214,8 @@ config ROCKCHIP_RK3399
config ROCKCHIP_RV1108
bool "Support Rockchip RV1108"
select CPU_V7
select SUPPORT_SPL
select SPL
help
The Rockchip RV1108 is a ARM-based SoC with a single-core Cortex-A7
and a DSP.

View File

@ -12,8 +12,12 @@
int rockchip_get_clk(struct udevice **devp)
{
#ifndef CONFIG_SPL_BUILD
return uclass_get_device_by_driver(UCLASS_CLK,
DM_GET_DRIVER(clk_rv1108), devp);
#else
return -1;
#endif
}
void *rockchip_get_cru(void)

View File

@ -1,7 +1,34 @@
/*
* (C) Copyright 2016 Rockchip Electronics Co., Ltd
* Author: Andy Yan <andy.yan@rock-chips.com>
* SPDX-License-Identifier: GPL-2.0+
* Copyright (C) 2018 Rockchip Electronics Co., Ltd
* Author: Zhihuan He <huan.he@rock-chips.com>
* SPDX-License-Identifier: GPL-2.0+
*/
#include <common.h>
#include <asm/io.h>
#include <asm/arch/hardware.h>
#include <asm/arch/grf_rv1108.h>
DECLARE_GLOBAL_DATA_PTR;
#define GRF_BASE 0x10300000
void board_debug_uart_init(void)
{
#ifdef CONFIG_SPL_BUILD
struct rv1108_grf *grf = (void *)GRF_BASE;
#if defined(CONFIG_DEBUG_UART_BASE) && (CONFIG_DEBUG_UART_BASE == 0x10230000)
rk_clrsetreg(&grf->gpio3a_iomux, /* UART0 */
GPIO3A6_MASK | GPIO3A5_MASK,
GPIO3A6_UART1_SOUT << GPIO3A6_SHIFT |
GPIO3A5_UART1_SIN << GPIO3A5_SHIFT);
#else
rk_clrsetreg(&grf->gpio2d_iomux, /* UART2 */
GPIO2D2_MASK | GPIO2D1_MASK,
GPIO2D2_UART2_SOUT_M0 << GPIO2D2_SHIFT |
GPIO2D1_UART2_SIN_M0 << GPIO2D1_SHIFT);
#endif
#endif /*CONFIG_SPL_BUILD*/
}

View File

@ -40,6 +40,7 @@ struct tos_parameter_t {
s64 reserve[8];
};
#if defined(CONFIG_SPL_FRAMEWORK) || !defined(CONFIG_SPL_OF_PLATDATA)
int dram_init_banksize(void)
{
size_t top = min((unsigned long)(gd->ram_size + CONFIG_SYS_SDRAM_BASE),
@ -66,6 +67,7 @@ int dram_init_banksize(void)
return 0;
}
#endif
size_t rockchip_sdram_size(phys_addr_t reg)
{
@ -107,6 +109,7 @@ size_t rockchip_sdram_size(phys_addr_t reg)
return (size_t)size_mb << 20;
}
#if defined(CONFIG_SPL_FRAMEWORK) || !defined(CONFIG_SPL_OF_PLATDATA)
int dram_init(void)
{
struct ram_info ram;
@ -129,6 +132,7 @@ int dram_init(void)
return 0;
}
#endif
ulong board_get_usable_ram_top(ulong total_size)
{

View File

@ -10,6 +10,7 @@
#include <ram.h>
#include <spl.h>
#include <asm/arch/bootrom.h>
#include <asm/arch-rockchip/sys_proto.h>
#include <asm/io.h>
DECLARE_GLOBAL_DATA_PTR;

View File

@ -1,10 +1,18 @@
CONFIG_ARM=y
# CONFIG_SPL_USE_ARCH_MEMCPY is not set
# CONFIG_SPL_USE_ARCH_MEMSET is not set
CONFIG_ARCH_ROCKCHIP=y
CONFIG_SPL_LIBCOMMON_SUPPORT=y
CONFIG_SPL_LIBGENERIC_SUPPORT=y
CONFIG_ROCKCHIP_RV1108=y
CONFIG_SPL_ROCKCHIP_BACK_TO_BROM=y
CONFIG_SPL_SERIAL_SUPPORT=y
CONFIG_TARGET_EVB_RV1108=y
CONFIG_SPL_STACK_R_ADDR=0x80000
CONFIG_DEFAULT_DEVICE_TREE="rv1108-evb"
CONFIG_DEBUG_UART=y
# CONFIG_DISPLAY_CPUINFO is not set
CONFIG_SPL_STACK_R=y
CONFIG_FASTBOOT=y
CONFIG_USB_FUNCTION_FASTBOOT=y
CONFIG_CMD_FASTBOOT=y
@ -19,6 +27,8 @@ CONFIG_CMD_USB=y
# CONFIG_CMD_SETEXPR is not set
CONFIG_CMD_CACHE=y
CONFIG_CMD_TIME=y
CONFIG_SPL_OF_CONTROL=y
CONFIG_SPL_OF_PLATDATA=y
CONFIG_NET_RANDOM_ETHADDR=y
CONFIG_REGMAP=y
CONFIG_SYSCON=y
@ -37,12 +47,15 @@ CONFIG_ETH_DESIGNWARE=y
CONFIG_GMAC_ROCKCHIP=y
CONFIG_PINCTRL=y
CONFIG_DM_REGULATOR_FIXED=y
CONFIG_RAM=y
CONFIG_SPL_RAM=y
CONFIG_DM_RESET=y
CONFIG_BAUDRATE=1500000
# CONFIG_SPL_SERIAL_PRESENT is not set
CONFIG_DEBUG_UART_BASE=0x10210000
CONFIG_DEBUG_UART_CLOCK=24000000
CONFIG_DEBUG_UART_SHIFT=2
CONFIG_DEBUG_UART_BOARD_INIT=y
CONFIG_ROCKCHIP_SFC=y
CONFIG_SYSRESET=y
CONFIG_USB=y
@ -58,4 +71,5 @@ CONFIG_USB_GADGET_DOWNLOAD=y
CONFIG_G_DNL_MANUFACTURER="Rockchip"
CONFIG_G_DNL_VENDOR_NUM=0x2207
CONFIG_G_DNL_PRODUCT_NUM=0x110a
CONFIG_SPL_TINY_MEMSET=y
CONFIG_ERRNO_STR=y

View File

@ -14,11 +14,20 @@
#define CONFIG_SKIP_LOWLEVEL_INIT
#define CONFIG_SYS_SDRAM_BASE 0x60000000
#define SDRAM_MAX_SIZE 0x80000000
#define CONFIG_NR_DRAM_BANKS 1
#define CONFIG_SYS_TEXT_BASE CONFIG_SYS_SDRAM_BASE
#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_TEXT_BASE + 0x100000)
#define CONFIG_SYS_LOAD_ADDR (CONFIG_SYS_SDRAM_BASE + 0x2000000)
/* SPL support */
#define CONFIG_SPL_STACK 0x10080700
#define CONFIG_SPL_TEXT_BASE 0x10080800
#define CONFIG_SPL_MAX_SIZE 0x1700
/* BSS setup */
#define CONFIG_SPL_BSS_MAX_SIZE 0x100
#define CONFIG_ROCKUSB_G_DNL_PID 0x110A
#define CONFIG_BOUNCE_BUFFER