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