16000992eSEnric Balletbo i Serra /* 26000992eSEnric Balletbo i Serra * Copyright (C) 2013 36000992eSEnric Balletbo i Serra * ISEE 2007 SL - Enric Balletbo i Serra <eballetbo@iseebcn.com> 46000992eSEnric Balletbo i Serra * 56000992eSEnric Balletbo i Serra * Based on common/spl/spl_nand.c 66000992eSEnric Balletbo i Serra * Copyright (C) 2011 76000992eSEnric Balletbo i Serra * Corscience GmbH & Co. KG - Simon Schwarz <schwarz@corscience.de> 86000992eSEnric Balletbo i Serra * 91a459660SWolfgang Denk * SPDX-License-Identifier: GPL-2.0+ 106000992eSEnric Balletbo i Serra */ 116000992eSEnric Balletbo i Serra #include <common.h> 126000992eSEnric Balletbo i Serra #include <config.h> 136000992eSEnric Balletbo i Serra #include <spl.h> 146000992eSEnric Balletbo i Serra #include <asm/io.h> 156000992eSEnric Balletbo i Serra #include <onenand_uboot.h> 166000992eSEnric Balletbo i Serra 17*afa6e6c4SSimon Glass static int spl_onenand_load_image(struct spl_boot_device *bootdev) 186000992eSEnric Balletbo i Serra { 196000992eSEnric Balletbo i Serra struct image_header *header; 207e0f2267SMarek Vasut int ret; 216000992eSEnric Balletbo i Serra 226000992eSEnric Balletbo i Serra debug("spl: onenand\n"); 236000992eSEnric Balletbo i Serra 246000992eSEnric Balletbo i Serra /*use CONFIG_SYS_TEXT_BASE as temporary storage area */ 256000992eSEnric Balletbo i Serra header = (struct image_header *)(CONFIG_SYS_TEXT_BASE); 266000992eSEnric Balletbo i Serra /* Load u-boot */ 276000992eSEnric Balletbo i Serra onenand_spl_load_image(CONFIG_SYS_ONENAND_U_BOOT_OFFS, 286000992eSEnric Balletbo i Serra CONFIG_SYS_ONENAND_PAGE_SIZE, (void *)header); 2971316c1dSSimon Glass ret = spl_parse_image_header(&spl_image, header); 307e0f2267SMarek Vasut if (ret) 317e0f2267SMarek Vasut return ret; 326000992eSEnric Balletbo i Serra onenand_spl_load_image(CONFIG_SYS_ONENAND_U_BOOT_OFFS, 336000992eSEnric Balletbo i Serra spl_image.size, (void *)spl_image.load_addr); 3436afd451SNikita Kiryanov 3536afd451SNikita Kiryanov return 0; 366000992eSEnric Balletbo i Serra } 37*afa6e6c4SSimon Glass /* Use priorty 1 so that Ubi can override this */ 38*afa6e6c4SSimon Glass SPL_LOAD_IMAGE_METHOD(1, BOOT_DEVICE_ONENAND, spl_onenand_load_image); 39