1 // SPDX-License-Identifier: GPL-2.0+ 2 /* 3 * (C) Copyright 2014 - 2017 Xilinx, Inc. Michal Simek 4 */ 5 #include <common.h> 6 #include <debug_uart.h> 7 #include <spl.h> 8 9 #include <asm/io.h> 10 #include <asm/spl.h> 11 #include <asm/arch/hardware.h> 12 #include <asm/arch/sys_proto.h> 13 #include <asm/arch/ps7_init_gpl.h> 14 15 void board_init_f(ulong dummy) 16 { 17 ps7_init(); 18 19 arch_cpu_init(); 20 /* 21 * The debug UART can be used from this point: 22 * debug_uart_init(); 23 * printch('x'); 24 */ 25 } 26 27 #ifdef CONFIG_SPL_BOARD_INIT 28 void spl_board_init(void) 29 { 30 preloader_console_init(); 31 board_init(); 32 } 33 #endif 34 35 u32 spl_boot_device(void) 36 { 37 u32 mode; 38 39 switch ((zynq_slcr_get_boot_mode()) & ZYNQ_BM_MASK) { 40 #ifdef CONFIG_SPL_SPI_SUPPORT 41 case ZYNQ_BM_QSPI: 42 puts("qspi boot\n"); 43 mode = BOOT_DEVICE_SPI; 44 break; 45 #endif 46 case ZYNQ_BM_NAND: 47 mode = BOOT_DEVICE_NAND; 48 break; 49 case ZYNQ_BM_NOR: 50 mode = BOOT_DEVICE_NOR; 51 break; 52 #ifdef CONFIG_SPL_MMC_SUPPORT 53 case ZYNQ_BM_SD: 54 puts("mmc boot\n"); 55 mode = BOOT_DEVICE_MMC1; 56 break; 57 #endif 58 case ZYNQ_BM_JTAG: 59 mode = BOOT_DEVICE_RAM; 60 break; 61 default: 62 puts("Unsupported boot mode selected\n"); 63 hang(); 64 } 65 66 return mode; 67 } 68 69 #ifdef CONFIG_SPL_OS_BOOT 70 int spl_start_uboot(void) 71 { 72 /* boot linux */ 73 return 0; 74 } 75 #endif 76 77 void spl_board_prepare_for_boot(void) 78 { 79 ps7_post_config(); 80 debug("SPL bye\n"); 81 } 82 83 #ifdef CONFIG_SPL_LOAD_FIT 84 int board_fit_config_name_match(const char *name) 85 { 86 /* Just empty function now - can't decide what to choose */ 87 debug("%s: %s\n", __func__, name); 88 89 return 0; 90 } 91 #endif 92