]>
git.ipfire.org Git - people/ms/u-boot.git/blob - arch/arm/mach-rockchip/rk322x-board-spl.c
2 * (C) Copyright 2017 Rockchip Electronics Co., Ltd
4 * SPDX-License-Identifier: GPL-2.0+
8 #include <debug_uart.h>
13 #include <asm/arch/bootrom.h>
14 #include <asm/arch/cru_rk322x.h>
15 #include <asm/arch/grf_rk322x.h>
16 #include <asm/arch/hardware.h>
17 #include <asm/arch/timer.h>
18 #include <asm/arch/uart.h>
20 u32
spl_boot_device(void)
22 return BOOT_DEVICE_MMC1
;
24 DECLARE_GLOBAL_DATA_PTR
;
26 #define GRF_BASE 0x11000000
27 #define SGRF_BASE 0x10140000
29 #define DEBUG_UART_BASE 0x11030000
31 void board_debug_uart_init(void)
33 static struct rk322x_grf
* const grf
= (void *)GRF_BASE
;
34 /* Enable early UART2 channel 1 on the RK322x */
35 rk_clrsetreg(&grf
->gpio1b_iomux
,
36 GPIO1B1_MASK
| GPIO1B2_MASK
,
37 GPIO1B2_UART21_SIN
<< GPIO1B2_SHIFT
|
38 GPIO1B1_UART21_SOUT
<< GPIO1B1_SHIFT
);
39 /* Set channel C as UART2 input */
40 rk_clrsetreg(&grf
->con_iomux
,
41 CON_IOMUX_UART2SEL_MASK
,
42 CON_IOMUX_UART2SEL_21
<< CON_IOMUX_UART2SEL_SHIFT
);
45 #define SGRF_DDR_CON0 0x10150000
46 void board_init_f(ulong dummy
)
52 * Debug UART can be used from here if required:
57 * printascii("string");
60 printascii("SPL Init");
62 ret
= spl_early_init();
64 debug("spl_early_init() failed: %d\n", ret
);
68 rockchip_timer_init();
69 printf("timer init done\n");
70 ret
= uclass_get_device(UCLASS_RAM
, 0, &dev
);
72 printf("DRAM init failed: %d\n", ret
);
76 /* Disable the ddr secure region setting to make it non-secure */
77 rk_clrreg(SGRF_DDR_CON0
, 0x4000);
78 #if defined(CONFIG_ROCKCHIP_SPL_BACK_TO_BROM) && !defined(CONFIG_SPL_BOARD_INIT)