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*2a2ee2acSSimon Glass static int spl_onenand_load_image(struct spl_image_info *spl_image, 18*2a2ee2acSSimon Glass struct spl_boot_device *bootdev) 196000992eSEnric Balletbo i Serra { 206000992eSEnric Balletbo i Serra struct image_header *header; 217e0f2267SMarek Vasut int ret; 226000992eSEnric Balletbo i Serra 236000992eSEnric Balletbo i Serra debug("spl: onenand\n"); 246000992eSEnric Balletbo i Serra 256000992eSEnric Balletbo i Serra /*use CONFIG_SYS_TEXT_BASE as temporary storage area */ 266000992eSEnric Balletbo i Serra header = (struct image_header *)(CONFIG_SYS_TEXT_BASE); 276000992eSEnric Balletbo i Serra /* Load u-boot */ 286000992eSEnric Balletbo i Serra onenand_spl_load_image(CONFIG_SYS_ONENAND_U_BOOT_OFFS, 296000992eSEnric Balletbo i Serra CONFIG_SYS_ONENAND_PAGE_SIZE, (void *)header); 30*2a2ee2acSSimon Glass ret = spl_parse_image_header(spl_image, header); 317e0f2267SMarek Vasut if (ret) 327e0f2267SMarek Vasut return ret; 336000992eSEnric Balletbo i Serra onenand_spl_load_image(CONFIG_SYS_ONENAND_U_BOOT_OFFS, 34*2a2ee2acSSimon Glass spl_image->size, (void *)spl_image->load_addr); 3536afd451SNikita Kiryanov 3636afd451SNikita Kiryanov return 0; 376000992eSEnric Balletbo i Serra } 38afa6e6c4SSimon Glass /* Use priorty 1 so that Ubi can override this */ 39afa6e6c4SSimon Glass SPL_LOAD_IMAGE_METHOD(1, BOOT_DEVICE_ONENAND, spl_onenand_load_image); 40