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