1*c6d9e9dbSVikas Manocha /* 2*c6d9e9dbSVikas Manocha * Copyright (C) 2017 Vikas Manocha <vikas.manocha@st.com> 3*c6d9e9dbSVikas Manocha * 4*c6d9e9dbSVikas Manocha * SPDX-License-Identifier: GPL-2.0+ 5*c6d9e9dbSVikas Manocha */ 6*c6d9e9dbSVikas Manocha 7*c6d9e9dbSVikas Manocha #include <common.h> 8*c6d9e9dbSVikas Manocha #include <spl.h> 9*c6d9e9dbSVikas Manocha spl_xip(struct spl_image_info * spl_image,struct spl_boot_device * bootdev)10*c6d9e9dbSVikas Manochastatic int spl_xip(struct spl_image_info *spl_image, 11*c6d9e9dbSVikas Manocha struct spl_boot_device *bootdev) 12*c6d9e9dbSVikas Manocha { 13*c6d9e9dbSVikas Manocha #ifdef CONFIG_SPL_OS_BOOT 14*c6d9e9dbSVikas Manocha if (!spl_start_uboot()) { 15*c6d9e9dbSVikas Manocha spl_image->arg = (void *)CONFIG_SYS_FDT_BASE; 16*c6d9e9dbSVikas Manocha spl_image->name = "Linux"; 17*c6d9e9dbSVikas Manocha spl_image->os = IH_OS_LINUX; 18*c6d9e9dbSVikas Manocha spl_image->load_addr = CONFIG_SYS_LOAD_ADDR; 19*c6d9e9dbSVikas Manocha spl_image->entry_point = CONFIG_SYS_LOAD_ADDR; 20*c6d9e9dbSVikas Manocha debug("spl: payload xipImage, load addr: 0x%lx\n", 21*c6d9e9dbSVikas Manocha spl_image->load_addr); 22*c6d9e9dbSVikas Manocha return 0; 23*c6d9e9dbSVikas Manocha } 24*c6d9e9dbSVikas Manocha #endif 25*c6d9e9dbSVikas Manocha return(spl_parse_image_header(spl_image, (const struct image_header *) 26*c6d9e9dbSVikas Manocha CONFIG_SYS_UBOOT_BASE)); 27*c6d9e9dbSVikas Manocha } 28*c6d9e9dbSVikas Manocha SPL_LOAD_IMAGE_METHOD("XIP", 0, BOOT_DEVICE_XIP, spl_xip); 29