X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=include%2Fspl.h;h=8afa0856c5889ec9dab554a89f75f47e2b34032e;hb=8319aeb1dad46c4b6d35ea16a5697ff8160dd4d1;hp=16f2f6a9ee710e818c0856c27090dc6ca2698016;hpb=9f0f432c0aea1e70959a0c06938459d3175a36b0;p=u-boot diff --git a/include/spl.h b/include/spl.h index 16f2f6a9ee..8afa0856c5 100644 --- a/include/spl.h +++ b/include/spl.h @@ -35,16 +35,28 @@ struct spl_image_info { * @dev: Pointer to the device, e.g. struct mmc * * @priv: Private data for the device * @bl_len: Block length for reading in bytes + * @filename: Name of the fit image file. * @read: Function to call to read from the device */ struct spl_load_info { void *dev; void *priv; int bl_len; + const char *filename; ulong (*read)(struct spl_load_info *load, ulong sector, ulong count, void *buf); }; +/** + * spl_load_simple_fit() - Loads a fit image from a device. + * @info: Structure containing the information required to load data. + * @sector: Sector number where FIT image is located in the device + * @fdt: Pointer to the copied FIT header. + * + * Reads the FIT image @sector in the device. Loads u-boot image to + * specified load address and copies the dtb to end of u-boot image. + * Returns 0 on success. + */ int spl_load_simple_fit(struct spl_load_info *info, ulong sector, void *fdt); #define SPL_COPY_PAYLOAD_ONLY 1 @@ -54,10 +66,12 @@ extern struct spl_image_info spl_image; /* SPL common functions */ void preloader_console_init(void); u32 spl_boot_device(void); -u32 spl_boot_mode(void); +u32 spl_boot_mode(const u32 boot_device); void spl_set_header_raw_uboot(void); -void spl_parse_image_header(const struct image_header *header); +int spl_parse_image_header(const struct image_header *header); void spl_board_prepare_for_linux(void); +void spl_board_prepare_for_boot(void); +int spl_board_ubi_load_image(u32 boot_device); void __noreturn jump_to_image_linux(void *arg); int spl_start_uboot(void); void spl_display_print(void); @@ -71,6 +85,9 @@ int spl_onenand_load_image(void); /* NOR SPL functions */ int spl_nor_load_image(void); +/* UBI SPL functions */ +int spl_ubi_load_image(u32 boot_device); + /* MMC SPL functions */ int spl_mmc_load_image(u32 boot_device); @@ -90,14 +107,16 @@ int spl_usb_load_image(void); int spl_sata_load_image(void); /* SPL FAT image functions */ -int spl_load_image_fat(block_dev_desc_t *block_dev, int partition, const char *filename); -int spl_load_image_fat_os(block_dev_desc_t *block_dev, int partition); +int spl_load_image_fat(struct blk_desc *block_dev, int partition, + const char *filename); +int spl_load_image_fat_os(struct blk_desc *block_dev, int partition); void __noreturn jump_to_image_no_args(struct spl_image_info *spl_image); /* SPL EXT image functions */ -int spl_load_image_ext(block_dev_desc_t *block_dev, int partition, const char *filename); -int spl_load_image_ext_os(block_dev_desc_t *block_dev, int partition); +int spl_load_image_ext(struct blk_desc *block_dev, int partition, + const char *filename); +int spl_load_image_ext_os(struct blk_desc *block_dev, int partition); /** * spl_init() - Set up device tree and driver model in SPL if enabled