[U-Boot] [PATCH v7 3/3] common: Generic firmware loader for file system

Marek Vasut marex at denx.de
Tue Jan 30 12:12:16 UTC 2018


On 01/30/2018 12:16 PM, tien.fong.chee at intel.com wrote:
> From: Tien Fong Chee <tien.fong.chee at intel.com>
> 
> This is file system generic loader which can be used to load
> the file image from the storage into target such as memory.
> The consumer driver would then use this loader to program whatever,
> ie. the FPGA device.
> 
> Signed-off-by: Tien Fong Chee <tien.fong.chee at intel.com>
> Reviewed-by: Lothar Waßmann <LW at KARO-electronics.de>
> ---
>  common/Kconfig             |   9 ++
>  common/Makefile            |   1 +
>  common/fs_loader.c         | 326 +++++++++++++++++++++++++++++++++++++++++++++
>  doc/README.firmware_loader |  76 +++++++++++
>  include/fs_loader.h        |  28 ++++
>  5 files changed, 440 insertions(+)
>  create mode 100644 common/fs_loader.c
>  create mode 100644 doc/README.firmware_loader
>  create mode 100644 include/fs_loader.h

[...]

> +#ifdef CONFIG_CMD_UBIFS
> +static int mount_ubifs(struct device_location *location)
> +{
> +	int ret;
> +	char cmd[32];
> +
> +	snprintf(cmd, sizeof(location->mtdpart), "ubi part %s",
> +		 location->mtdpart);
> +
> +	ret = run_command(cmd, 0);

Can you call the UBI functions directly instead of invoking the U-Boot
command parser ?

> +	if (ret)
> +		return ret;
> +
> +	snprintf(cmd, sizeof(location->ubivol), "ubifsmount %s",
> +		 location->ubivol);
> +
> +	ret = run_command(cmd, 0);

DTTO here ...

> +	return ret;
> +}
> +
> +static int umount_ubifs(void)
> +{
> +	return cmd_ubifs_umount();
> +}
> +#else
> +static int mount_ubifs(struct device_location *location)
> +{
> +	debug("Error: Cannot load image: no UBIFS support\n");
> +	return -ENOSYS;
> +}
> +#endif

[...]
-- 
Best regards,
Marek Vasut


More information about the U-Boot mailing list