Since the size of SPL can't be exceeded 0x8000 bytes in RK3288, it is not possible add new SPL features like Falcon mode or etc. So add TPL stage so-that adding new features to SPL is possible. - TPL: DRAM init, clocks - SPL: MMC, falcon, etc Signed-off-by: Jagan Teki <jagan@amarulasolutions.com> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>master
parent
a982d5156d
commit
532cb7f5ad
@ -0,0 +1,84 @@ |
||||
/*
|
||||
* Copyright (C) 2017 Amarula Solutions |
||||
* |
||||
* SPDX-License-Identifier: GPL-2.0+ |
||||
*/ |
||||
|
||||
#include <common.h> |
||||
#include <debug_uart.h> |
||||
#include <dm.h> |
||||
#include <ram.h> |
||||
#include <spl.h> |
||||
#include <version.h> |
||||
#include <asm/io.h> |
||||
#include <asm/arch/bootrom.h> |
||||
#include <asm/arch/clock.h> |
||||
#include <asm/arch/grf_rk3288.h> |
||||
#include <asm/arch/periph.h> |
||||
#include <asm/arch/pmu_rk3288.h> |
||||
#include <asm/arch/sys_proto.h> |
||||
#include <asm/arch/timer.h> |
||||
|
||||
DECLARE_GLOBAL_DATA_PTR; |
||||
|
||||
#define GRF_BASE 0xff770000 |
||||
void board_init_f(ulong dummy) |
||||
{ |
||||
struct udevice *dev; |
||||
int ret; |
||||
|
||||
/* Example code showing how to enable the debug UART on RK3288 */ |
||||
/* Enable early UART on the RK3288 */ |
||||
struct rk3288_grf * const grf = (void *)GRF_BASE; |
||||
|
||||
rk_clrsetreg(&grf->gpio7ch_iomux, GPIO7C7_MASK << GPIO7C7_SHIFT | |
||||
GPIO7C6_MASK << GPIO7C6_SHIFT, |
||||
GPIO7C7_UART2DBG_SOUT << GPIO7C7_SHIFT | |
||||
GPIO7C6_UART2DBG_SIN << GPIO7C6_SHIFT); |
||||
/*
|
||||
* Debug UART can be used from here if required: |
||||
* |
||||
* debug_uart_init(); |
||||
* printch('a'); |
||||
* printhex8(0x1234); |
||||
* printascii("string"); |
||||
*/ |
||||
debug_uart_init(); |
||||
|
||||
ret = spl_early_init(); |
||||
if (ret) { |
||||
debug("spl_early_init() failed: %d\n", ret); |
||||
hang(); |
||||
} |
||||
|
||||
rockchip_timer_init(); |
||||
configure_l2ctlr(); |
||||
|
||||
ret = rockchip_get_clk(&dev); |
||||
if (ret) { |
||||
debug("CLK init failed: %d\n", ret); |
||||
return; |
||||
} |
||||
|
||||
ret = uclass_get_device(UCLASS_RAM, 0, &dev); |
||||
if (ret) { |
||||
debug("DRAM init failed: %d\n", ret); |
||||
return; |
||||
} |
||||
} |
||||
|
||||
void board_return_to_bootrom(void) |
||||
{ |
||||
back_to_bootrom(); |
||||
} |
||||
|
||||
u32 spl_boot_device(void) |
||||
{ |
||||
return BOOT_DEVICE_BOOTROM; |
||||
} |
||||
|
||||
void spl_board_init(void) |
||||
{ |
||||
puts("\nU-Boot TPL " PLAIN_VERSION " (" U_BOOT_DATE " - " \
|
||||
U_BOOT_TIME ")\n"); |
||||
} |
Loading…
Reference in new issue