1 /* 2 * (C) Copyright 2015 Rockchip Electronics Co., Ltd 3 * 4 * SPDX-License-Identifier: GPL-2.0+ 5 */ 6 7 #include <common.h> 8 #include <debug_uart.h> 9 #include <asm/io.h> 10 #include <asm/arch/grf_rk3036.h> 11 #include <asm/arch/hardware.h> 12 #include <asm/arch/sdram_rk3036.h> 13 #include <asm/arch/timer.h> 14 #include <asm/arch/uart.h> 15 16 DECLARE_GLOBAL_DATA_PTR; 17 18 #define GRF_BASE 0x20008000 19 static struct rk3036_grf * const grf = (void *)GRF_BASE; 20 21 #define DEBUG_UART_BASE 0x20068000 22 23 extern void back_to_bootrom(void); 24 25 void board_init_f(ulong dummy) 26 { 27 #ifdef EARLY_DEBUG 28 /* 29 * NOTE: sd card and debug uart use same iomux in rk3036, 30 * so if you enable uart, 31 * you can not boot from sdcard 32 */ 33 rk_clrsetreg(&grf->gpio1c_iomux, 34 GPIO1C3_MASK << GPIO1C3_SHIFT | 35 GPIO1C2_MASK << GPIO1C2_SHIFT, 36 GPIO1C3_UART2_SOUT << GPIO1C3_SHIFT | 37 GPIO1C2_UART2_SIN << GPIO1C2_SHIFT); 38 debug_uart_init(); 39 #endif 40 rockchip_timer_init(); 41 sdram_init(); 42 43 /* return to maskrom */ 44 back_to_bootrom(); 45 } 46 47 /* Place Holders */ 48 void board_init_r(gd_t *id, ulong dest_addr) 49 { 50 /* 51 * Function attribute is no-return 52 * This Function never executes 53 */ 54 while (1) 55 ; 56 } 57 58 void hang(void) 59 { 60 while (1) 61 ; 62 } 63