[U-Boot] [PATCH 4/7] dfu: MMC specific routines for DFU operation
Tom Rini
trini at ti.com
Wed Jul 4 00:06:54 CEST 2012
On Wed, Jul 04, 2012 at 12:01:27AM +0200, Marek Vasut wrote:
> Dear Tom Rini,
>
> > On Tue, Jul 03, 2012 at 11:29:31PM +0200, Marek Vasut wrote:
> > > Dear Lukasz Majewski,
> > >
> > > > Support for MMC storage devices to work with DFU framework.
> > > >
> > > > Signed-off-by: Lukasz Majewski <l.majewski at samsung.com>
> > > > Signed-off-by: Kyungmin Park <kyungmin.park at samsung.com>
> > > > Cc: Marek Vasut <marex at denx.de>
> > > > ---
> > >
> > > [...]
> > >
> > > > +
> > > > +#include <common.h>
> > > > +#include <malloc.h>
> > > > +#include <dfu.h>
> > > > +
> > > > +int dfu_write_medium_mmc(struct dfu_entity *dfu, void *buf, long *len)
> > > > +{
> > > > + ALLOC_CACHE_ALIGN_BUFFER(char, cmd_buf, DFU_CMD_BUF_SIZE);
> > > > +
> > > > + memset(cmd_buf, '\0', sizeof(cmd_buf));
> > > > +
> > > > + switch (dfu->layout) {
> > > > + case RAW_ADDR:
> > > > + sprintf(cmd_buf, "mmc write 0x%x %x %x", (unsigned int) buf,
> > > > + dfu->data.mmc.lba_start, dfu->data.mmc.lba_size);
> > > > + break;
> > > > + case FAT:
> > > > + sprintf(cmd_buf, "fatwrite mmc %d:%d 0x%x %s %lx",
> > > > + dfu->data.mmc.dev, dfu->data.mmc.part,
> > > > + (unsigned int) buf, dfu->name, *len);
> > > > + break;
> > > > + default:
> > > > + printf("%s: Wrong layout!\n", __func__);
> > > > + }
> > > > +
> > > > + debug("%s: %s 0x%p\n", __func__, cmd_buf, cmd_buf);
> > > > + run_command(cmd_buf, 0);
> > >
> > > Holy Moly ... can we not make this into simple calls to those subsystems
> > > ? Instead invoking command is crazy ;-)
> >
> > Are they really simple? There's a few other places we do this, and so
> > long as it's documented that DFU depends on CONFIG_FAT_WRITE for writing
> > to fat and so forth.
>
> Well ain't it easier to call fat_write() or similar?
Assuming that most of the logic in do_fat_fswrite is needed, no. And I
think a good portion of it is, at first glance at least.
--
Tom
More information about the U-Boot
mailing list