[U-Boot] [PATCH v2 3/3] common: Generic loader for file system
Chee, Tien Fong
tien.fong.chee at intel.com
Thu Jun 7 08:36:39 UTC 2018
On Thu, 2018-06-07 at 08:51 +0200, Marek Vasut wrote:
> On 06/07/2018 06:04 AM, Chee, Tien Fong wrote:
> >
> > On Wed, 2018-06-06 at 10:39 +0200, Marek Vasut wrote:
> > >
> > > On 05/24/2018 07:04 AM, 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>
> > > > ---
> > > [...]
> > > >
> > > >
> > > > +static int fs_loader_probe(struct udevice *dev)
> > > > +{
> > > > + return 0;
> > > > +};
> > > > +
> > > > +static const struct udevice_id fs_loader_ids[] = {
> > > > + { .compatible = "fs_loader"},
> > > Why exactly is there a DT compatible for a firmware loader?
> > >
> > Correct me if i'm wrong, this is required to look the platform data
> > from DTS, right? Details of DTS in patch 2.
> How so ? The FW loader should behave as a library for other drivers
> to
> use, not like a driver.
>
The fs_loader node in DTS just provide a way for user to tell the
firmware loader what storage device and default partition to load data
from. Default partition can be overriden through the variable
environment.
Caller/other drivers can create different firmware loader instance
based on different fs_loader node(different storage device) for their
loading purpose.
Why this cannot be used by other driver?
> >
> > >
> > > >
> > > >
> > > > + { }
> > > > +};
> > > > +
> > > > +U_BOOT_DRIVER(fs_loader) = {
> > > > + .name = "fs_loader",
> > > > + .id =
> > > > UCLASS_FS_FIRMWARE_LOADER,
> > > > + .of_match = fs_loader_ids,
> > > > + .probe = fs_loader_probe,
> > > > + .ofdata_to_platdata =
> > > > fs_loader_ofdata_to_platdata,
> > > > + .platdata_auto_alloc_size = sizeof(struct
> > > > device_platdata),
> > > > +};
> > > > +
> > > > +UCLASS_DRIVER(fs_loader) = {
> > > > + .id = UCLASS_FS_FIRMWARE_LOADER,
> > > > + .name = "fs_loader",
> > > > +};
> > > [...]
>
More information about the U-Boot
mailing list