1*4882a593Smuzhiyun /* 2*4882a593Smuzhiyun * (C) Copyright 2013 - 2014 Xilinx, Inc 3*4882a593Smuzhiyun * 4*4882a593Smuzhiyun * Michal Simek <michal.simek@xilinx.com> 5*4882a593Smuzhiyun * 6*4882a593Smuzhiyun * SPDX-License-Identifier: GPL-2.0+ 7*4882a593Smuzhiyun */ 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun #include <common.h> 10*4882a593Smuzhiyun #include <image.h> 11*4882a593Smuzhiyun #include <spl.h> 12*4882a593Smuzhiyun #include <asm/io.h> 13*4882a593Smuzhiyun #include <asm/u-boot.h> 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun DECLARE_GLOBAL_DATA_PTR; 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun bool boot_linux; 18*4882a593Smuzhiyun spl_boot_device(void)19*4882a593Smuzhiyunu32 spl_boot_device(void) 20*4882a593Smuzhiyun { 21*4882a593Smuzhiyun return BOOT_DEVICE_NOR; 22*4882a593Smuzhiyun } 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun /* Board initialization after bss clearance */ spl_board_init(void)25*4882a593Smuzhiyunvoid spl_board_init(void) 26*4882a593Smuzhiyun { 27*4882a593Smuzhiyun /* enable console uart printing */ 28*4882a593Smuzhiyun preloader_console_init(); 29*4882a593Smuzhiyun } 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun #ifdef CONFIG_SPL_OS_BOOT jump_to_image_linux(struct spl_image_info * spl_image)32*4882a593Smuzhiyunvoid __noreturn jump_to_image_linux(struct spl_image_info *spl_image) 33*4882a593Smuzhiyun { 34*4882a593Smuzhiyun debug("Entering kernel arg pointer: 0x%p\n", spl_image->arg); 35*4882a593Smuzhiyun typedef void (*image_entry_arg_t)(char *, ulong, ulong) 36*4882a593Smuzhiyun __attribute__ ((noreturn)); 37*4882a593Smuzhiyun image_entry_arg_t image_entry = 38*4882a593Smuzhiyun (image_entry_arg_t)spl_image->entry_point; 39*4882a593Smuzhiyun 40*4882a593Smuzhiyun image_entry(NULL, 0, (ulong)spl_image->arg); 41*4882a593Smuzhiyun } 42*4882a593Smuzhiyun #endif /* CONFIG_SPL_OS_BOOT */ 43*4882a593Smuzhiyun spl_start_uboot(void)44*4882a593Smuzhiyunint spl_start_uboot(void) 45*4882a593Smuzhiyun { 46*4882a593Smuzhiyun #ifdef CONFIG_SPL_OS_BOOT 47*4882a593Smuzhiyun if (boot_linux) 48*4882a593Smuzhiyun return 0; 49*4882a593Smuzhiyun #endif 50*4882a593Smuzhiyun 51*4882a593Smuzhiyun return 1; 52*4882a593Smuzhiyun } 53