[U-Boot] [PATCH v6 2/2] common: Generic firmware loader for file system
Chee, Tien Fong
tien.fong.chee at intel.com
Tue Jan 23 08:31:15 UTC 2018
On Tue, 2018-01-23 at 08:58 +0100, Simon Goldschmidt wrote:
> On 27.12.2017 06:04, 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>
> > ---
> > common/Makefile | 1 +
> > common/fs_loader.c | 309
> > +++++++++++++++++++++++++++++++++++++++++++++
> > doc/README.firmware_loader | 76 +++++++++++
> > include/fs_loader.h | 28 ++++
> > 4 files changed, 414 insertions(+)
> > create mode 100644 common/fs_loader.c
> > create mode 100644 doc/README.firmware_loader
> > create mode 100644 include/fs_loader.h
> >
> > diff --git a/common/Makefile b/common/Makefile
> > index cec506f..2934221 100644
> > --- a/common/Makefile
> > +++ b/common/Makefile
> > @@ -130,3 +130,4 @@ obj-$(CONFIG_CMD_DFU) += dfu.o
> <snip>
>
> >
> > diff --git a/include/fs_loader.h b/include/fs_loader.h
> > new file mode 100644
> > index 0000000..83a8b80
> > --- /dev/null
> > +++ b/include/fs_loader.h
> > @@ -0,0 +1,28 @@
> > +/*
> > + * Copyright (C) 2017 Intel Corporation <www.intel.com>
> > + *
> > + * SPDX-License-Identifier: GPL-2.0
> > + */
> > +#ifndef _FS_LOADER_H_
> > +#define _FS_LOADER_H_
> > +
> > +#include <linux/types.h>
> > +
> > +struct firmware {
> > + size_t size; /* Size of a file */
> > + const u8 *data; /* Buffer for file */
> > + void *priv; /* Firmware loader private
> > fields */
> > +};
> > +
> > +struct device_location {
> > + char *name; /* Such as mmc, usb,and sata. */
> Would it make sense to use 'enum if_type' from blk.h here instead of
> a
> "magic" name? Or are the constants passed here "well-known" enough
> to
> hide them?
>
This structure is declared such way so that it can be compatible with
common/splash.c. It also much more easy to port fs_loader into
common/splash_source.c in later.
> Regards,
> Simon
>
> >
> > + char *devpart; /* Use the load command dev:part
> > conventions */
> > + char *mtdpart; /* MTD partition for ubi part */
> > + char *ubivol; /* UBI volume-name for ubifsmount */
> > +};
> > +
> > +int request_firmware_into_buf(struct firmware **firmware_p,
> > + const char *name,
> > + struct device_location *location,
> > + void *buf, size_t size, u32 offset);
> > +#endif
More information about the U-Boot
mailing list