On 11/01/2017 10:18 AM, tien.fong.c...@intel.com wrote:
> From: Tien Fong Chee <tien.fong.c...@intel.com>
> 
> Generic firmware loader framework contains some common functionality
> which is factored out from splash loader. It is reusable by any
> specific driver file system firmware loader. Specific driver file system
> firmware loader handling can be defined with both weak function
> fsloader_preprocess and fs_loading.
> 
> Signed-off-by: Tien Fong Chee <tien.fong.c...@intel.com>
> ---
>  common/Makefile   |   1 +
>  common/load_fs.c  | 217 
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++
>  include/load_fs.h |  38 ++++++++++
>  3 files changed, 256 insertions(+)
>  create mode 100644 common/load_fs.c
>  create mode 100644 include/load_fs.h
[...]

> +int flash_select_fs_dev(struct flash_location *location)

Why does everything have flash_ prefix ?

I also mentioned the API should copy the linux firmware loader API.

> +{
> +     int res;
> +
> +     switch (location->storage) {
> +     case FLASH_STORAGE_MMC:
> +             res = fs_set_blk_dev("mmc", location->devpart, FS_TYPE_ANY);
> +             break;
> +     case FLASH_STORAGE_USB:
> +             res = fs_set_blk_dev("usb", location->devpart, FS_TYPE_ANY);
> +             break;
> +     case FLASH_STORAGE_SATA:
> +             res = fs_set_blk_dev("sata", location->devpart, FS_TYPE_ANY);
> +             break;
> +     case FLASH_STORAGE_NAND:
> +             if (location->ubivol != NULL)
> +                     res = fs_set_blk_dev("ubi", NULL, FS_TYPE_UBIFS);
> +             else
> +                     res = -ENODEV;
> +             break;
> +     default:
> +             error("Error: unsupported location storage.\n");
> +             return -ENODEV;
> +     }
> +
> +     if (res)
> +             error("Error: could not access storage.\n");
> +
> +     return res;
> +}
> +
> +#ifndef CONFIG_SPL_BUILD
> +#ifdef CONFIG_USB_STORAGE

This looks wrong, the USB can be supported in SPL no problem. And this
USB init shouldn't be duplicated here IMO.

> +static int flash_init_usb(void)
> +{
> +     int err;
> +
> +     err = usb_init();
> +     if (err)
> +             return err;
> +
> +#ifndef CONFIG_DM_USB
> +     err = usb_stor_scan(1) < 0 ? -ENODEV : 0;
> +#endif
> +
> +     return err;
> +}
> +#else
> +static inline int flash_init_usb(void)

Don't use inline , the compiler can decide better.

[...]


-- 
Best regards,
Marek Vasut
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to