From: Lukasz Majewski <l.majewski@samsung.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 3/7] dfu: DFU backend implementation
Date: Wed, 04 Jul 2012 10:56:10 +0200 [thread overview]
Message-ID: <20120704105610.25deee27@lmajewski.digital.local> (raw)
In-Reply-To: <201207032328.19267.marex@denx.de>
Hi Marek,
> Dear Lukasz Majewski,
>
> > New, separate driver at ./drivers/dfu has been added. It allows
> > platform and storage independent operation of DFU.
> >
> > Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
> > Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
> > Cc: Marek Vasut <marex@denx.de>
> > ---
>
> [...]
>
> > +#include <common.h>
> > +#include <malloc.h>
> > +#include <mmc.h>
> > +#include <fat.h>
> > +#include <dfu.h>
> > +#include <linux/list.h>
> > +#include <linux/compiler.h>
> > +
> > +static LIST_HEAD(dfu_list);
> > +static int dfu_alt_num;
> > +
> > +static int dfu_find_alt_num(char *s)
> > +{
> > + int i = 0;
> > +
> > + for (; *s; s++)
> > + if (*s == ';')
> > + i++;
> > +
> > + return ++i;
> > +}
> > +
> > +static char *dfu_extract_entity(char** env)
> > +{
> > + char *s = *env;
> > +
> > + strsep(env, ";");
> > + return s;
> > +}
>
> Shall we not make these all generic? They seem to be quite helpful
> components.
It is a good topic for a discussion if those functions shall be moved
to ./lib/string.c.
I regarded them as a "little" helper functions for parsing DFU alt
setting env variable. Those are very short and build with methods
exported from string.c
>
> > +
> > +char *dfu_extract_token(char** e, int *n)
> > +{
> > + char *st = *e;
> > +
> > + debug("%s: %s\n", __func__, st);
> > +
> > + strsep(e, " ");
> > + *n = *e - st;
> > +
> > + return st;
> > +}
> > +
> > +static unsigned char __aligned(CONFIG_SYS_CACHELINE_SIZE)
> > + dfu_buf[DFU_DATA_BUF_SIZE];
>
> Can we not stack-allocate it with ALLOC_CACHE_ALIGN_BUFFER()?
The dfu_buf is 4 MiB (this is the size of DFU_DATA_BUF_SIZE). I don't
think, that allocating it on the stack (for stack allocation the
ALLOC_CACHE_ALIGN_BUFFER() is designed) is a good idea.
>
> [...]
>
> > diff --git a/include/dfu.h b/include/dfu.h
> > new file mode 100644
> > index 0000000..f7d823b
> > --- /dev/null
> > +++ b/include/dfu.h
>
> [...]
>
> > +struct dfu_entity {
> > + char name[DFU_NAME_SIZE];
> > + int alt;
> > + void *dev_private;
> > + int dev_num;
> > + enum dfu_device_type dev_type;
> > + enum dfu_layout layout;
> > +
> > + union {
> > + struct mmc_internal_data mmc;
>
> This union seems redundant ;-)
Good point :-), but I predict, that DFU will be used to program other
memory types (OneNAND, or NAND). To support those, one needs to extend
the union with e.g struct onenand_internal_data onenand.
Since we don't have so many memory types, I think that union usage is
acceptable.
>
> [...]
--
Best regards,
Lukasz Majewski
Samsung Poland R&D Center | Linux Platform Group
next prev parent reply other threads:[~2012-07-04 8:56 UTC|newest]
Thread overview: 147+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-03 9:38 [U-Boot] [PATCH 0/7] dfu:usb: Composite USB download gadget with DFU function Lukasz Majewski
2012-07-03 9:38 ` [U-Boot] [PATCH 1/7] dfu:usb: Support for g_dnl composite download gadget Lukasz Majewski
2012-07-03 18:41 ` Marek Vasut
2012-07-04 7:42 ` Lukasz Majewski
2012-07-20 4:14 ` Mike Frysinger
2012-07-23 15:25 ` Lukasz Majewski
2012-07-24 17:50 ` Mike Frysinger
2012-07-03 9:38 ` [U-Boot] [PATCH 2/7] dfu:usb: DFU USB function (f_dfu) support for g_dnl composite gadget Lukasz Majewski
2012-07-03 21:21 ` Marek Vasut
2012-07-04 8:39 ` Lukasz Majewski
2012-07-04 14:35 ` Marek Vasut
2012-07-04 15:04 ` Lukasz Majewski
2012-07-04 16:21 ` Marek Vasut
2012-07-03 9:38 ` [U-Boot] [PATCH 3/7] dfu: DFU backend implementation Lukasz Majewski
2012-07-03 21:28 ` Marek Vasut
2012-07-04 8:56 ` Lukasz Majewski [this message]
2012-07-04 14:36 ` Marek Vasut
2012-07-04 15:07 ` Lukasz Majewski
2012-07-04 16:22 ` Marek Vasut
2012-07-20 4:32 ` Mike Frysinger
2012-07-23 16:11 ` Lukasz Majewski
2012-07-03 9:38 ` [U-Boot] [PATCH 4/7] dfu: MMC specific routines for DFU operation Lukasz Majewski
2012-07-03 21:29 ` Marek Vasut
2012-07-03 21:55 ` Tom Rini
2012-07-03 22:01 ` Marek Vasut
2012-07-03 22:06 ` Tom Rini
2012-07-03 22:31 ` Marek Vasut
2012-07-03 22:33 ` Tom Rini
2012-07-03 23:07 ` Stephen Warren
2012-07-03 23:38 ` Tom Rini
2012-07-03 23:58 ` Stephen Warren
2012-07-04 0:13 ` Marek Vasut
2012-07-20 4:25 ` Mike Frysinger
2012-07-04 9:10 ` Lukasz Majewski
2012-07-04 14:38 ` Marek Vasut
2012-07-04 15:13 ` Lukasz Majewski
2012-07-03 9:38 ` [U-Boot] [PATCH 5/7] dfu:cmd: Support for DFU u-boot command Lukasz Majewski
2012-07-03 21:32 ` Marek Vasut
2012-07-04 9:28 ` Lukasz Majewski
2012-07-04 14:39 ` Marek Vasut
2012-07-20 4:23 ` Mike Frysinger
2012-07-20 11:33 ` Marek Vasut
2012-07-20 14:43 ` Mike Frysinger
2012-07-20 21:11 ` Marek Vasut
2012-07-21 17:20 ` Mike Frysinger
2012-07-21 17:21 ` Marek Vasut
2012-07-20 4:22 ` Mike Frysinger
2012-07-20 11:35 ` Marek Vasut
2012-07-20 4:20 ` Mike Frysinger
2012-07-23 16:01 ` Lukasz Majewski
2012-07-24 18:00 ` Mike Frysinger
2012-07-24 20:48 ` Lukasz Majewski
2012-07-03 9:38 ` [U-Boot] [PATCH 6/7] arm:trats: Support for USB UDC driver at TRATS board Lukasz Majewski
2012-07-04 0:20 ` Minkyu Kang
2012-07-04 9:33 ` Lukasz Majewski
2012-07-03 9:38 ` [U-Boot] [PATCH 7/7] arm:trats: Enable g_dnl composite USB gadget with embedded DFU function on TRATS Lukasz Majewski
2012-07-04 0:22 ` Minkyu Kang
2012-07-03 12:52 ` [U-Boot] [PATCH 0/7] dfu:usb: Composite USB download gadget with DFU function Otavio Salvador
2012-07-03 12:59 ` Marek Vasut
2012-07-04 15:48 ` [U-Boot] [PATCH v2 " Lukasz Majewski
2012-07-04 15:48 ` [U-Boot] [PATCH v2 1/7] dfu:usb: Support for g_dnl composite download gadget Lukasz Majewski
2012-07-09 16:30 ` Marek Vasut
2012-07-04 15:48 ` [U-Boot] [PATCH v2 2/7] dfu:usb: DFU USB function (f_dfu) support for g_dnl composite gadget Lukasz Majewski
2012-07-09 16:34 ` Marek Vasut
2012-07-04 15:48 ` [U-Boot] [PATCH v2 3/7] dfu: DFU backend implementation Lukasz Majewski
2012-07-09 16:35 ` Marek Vasut
2012-07-27 11:58 ` Wolfgang Denk
2012-07-27 13:15 ` Lukasz Majewski
2012-07-27 13:35 ` Wolfgang Denk
2012-07-27 13:47 ` Lukasz Majewski
2012-07-04 15:48 ` [U-Boot] [PATCH v2 4/7] dfu: MMC specific routines for DFU operation Lukasz Majewski
2012-07-09 16:36 ` Marek Vasut
2012-07-10 8:45 ` Tom Rini
2012-07-10 10:38 ` Lukasz Majewski
2012-07-11 11:54 ` Tom Rini
2012-07-12 12:39 ` Lukasz Majewski
2012-07-12 12:46 ` Tom Rini
2012-07-13 10:29 ` Marek Vasut
2012-07-13 21:27 ` Andy Fleming
2012-07-27 12:36 ` Wolfgang Denk
2012-07-27 12:43 ` Marek Vasut
2012-07-27 12:57 ` Wolfgang Denk
2012-07-27 13:15 ` Marek Vasut
2012-07-27 13:38 ` Wolfgang Denk
2012-07-27 13:33 ` Lukasz Majewski
2012-07-27 13:47 ` Wolfgang Denk
2012-07-04 15:48 ` [U-Boot] [PATCH v2 5/7] dfu:cmd: Support for DFU u-boot command Lukasz Majewski
2012-07-04 15:48 ` [U-Boot] [PATCH v2 6/7] arm:trats: Support for USB UDC driver at TRATS board Lukasz Majewski
2012-07-04 15:48 ` [U-Boot] [PATCH v2 7/7] arm:trats: Enable g_dnl composite USB gadget with embedded DFU function on TRATS Lukasz Majewski
2012-07-09 11:28 ` [U-Boot] [PATCH v2 0/7] dfu:usb: Composite USB download gadget with DFU function Lukasz Majewski
2012-07-09 11:46 ` Tom Rini
2012-07-09 16:25 ` Marek Vasut
2012-07-10 8:27 ` Lukasz Majewski
2012-07-10 9:28 ` Marek Vasut
2012-07-18 12:51 ` [U-Boot] [PATCH " Marek Vasut
2012-07-23 7:57 ` Lukasz Majewski
2012-07-23 10:57 ` Marek Vasut
2012-07-31 6:36 ` [U-Boot] [PATCH v3 0/7] dfu:usb: DFU support via USB Download gadget Lukasz Majewski
2012-07-31 6:36 ` [U-Boot] [PATCH v3 1/7] dfu:usb: Support for g_dnl composite download gadget Lukasz Majewski
2012-08-01 22:40 ` Mike Frysinger
2012-08-02 9:55 ` Lukasz Majewski
2012-07-31 6:36 ` [U-Boot] [PATCH v3 2/7] dfu:usb: DFU USB function (f_dfu) support for g_dnl composite gadget Lukasz Majewski
2012-08-01 22:45 ` Mike Frysinger
2012-08-02 10:54 ` Lukasz Majewski
2012-07-31 6:36 ` [U-Boot] [PATCH v3 3/7] dfu: DFU backend implementation Lukasz Majewski
2012-08-01 22:57 ` Mike Frysinger
2012-08-02 13:55 ` Lukasz Majewski
2012-08-03 23:19 ` Mike Frysinger
2012-08-04 7:47 ` Marek Vasut
2012-08-04 16:28 ` Mike Frysinger
2012-07-31 6:37 ` [U-Boot] [PATCH v3 4/7] dfu: MMC specific routines for DFU operation Lukasz Majewski
2012-08-01 23:00 ` Mike Frysinger
2012-08-02 14:47 ` Lukasz Majewski
2012-07-31 6:37 ` [U-Boot] [PATCH v3 5/7] dfu:cmd: Support for DFU u-boot command Lukasz Majewski
2012-07-31 17:14 ` Stephen Warren
2012-08-01 7:16 ` Lukasz Majewski
2012-08-01 17:13 ` Stephen Warren
2012-08-02 8:31 ` Lukasz Majewski
2012-08-02 15:52 ` Stephen Warren
2012-08-03 6:13 ` Lukasz Majewski
2012-08-03 15:32 ` Stephen Warren
2012-08-06 7:13 ` Lukasz Majewski
2012-08-01 18:04 ` Mike Frysinger
2012-08-02 7:16 ` Marek Vasut
2012-08-02 15:28 ` Lukasz Majewski
2012-08-02 17:47 ` Mike Frysinger
2012-07-31 6:37 ` [U-Boot] [PATCH v3 6/7] arm:trats: Support for USB UDC driver at TRATS board Lukasz Majewski
2012-07-31 8:31 ` Minkyu Kang
2012-07-31 6:37 ` [U-Boot] [PATCH v3 7/7] arm:trats: Enable g_dnl composite USB gadget with embedded DFU function on TRATS Lukasz Majewski
2012-07-31 8:32 ` Minkyu Kang
2012-08-03 7:45 ` [U-Boot] [PATCH v4 0/7] dfu:usb: DFU support via USB Download gadget Lukasz Majewski
2012-08-03 7:45 ` [U-Boot] [PATCH v4 1/7] dfu:usb: Support for g_dnl composite download gadget Lukasz Majewski
2012-08-03 7:45 ` [U-Boot] [PATCH v4 2/7] dfu:usb: DFU USB function (f_dfu) support for g_dnl composite gadget Lukasz Majewski
2012-08-03 7:45 ` [U-Boot] [PATCH v4 3/7] dfu: DFU backend implementation Lukasz Majewski
2012-08-03 7:45 ` [U-Boot] [PATCH v4 4/7] dfu: MMC specific routines for DFU operation Lukasz Majewski
2012-08-03 7:45 ` [U-Boot] [PATCH v4 5/7] dfu:cmd: Support for DFU u-boot command Lukasz Majewski
2012-08-03 7:45 ` [U-Boot] [PATCH v4 6/7] arm:trats: Support for USB UDC driver at TRATS board Lukasz Majewski
2012-08-03 7:45 ` [U-Boot] [PATCH v4 7/7] arm:trats: Enable g_dnl composite USB gadget with embedded DFU function on TRATS Lukasz Majewski
2012-08-06 12:41 ` [U-Boot] [PATCH v5 0/7] dfu:usb: DFU support via USB Download gadget Lukasz Majewski
2012-08-06 12:41 ` [U-Boot] [PATCH v5 1/7] dfu:usb: Support for g_dnl composite download gadget Lukasz Majewski
2012-08-06 12:41 ` [U-Boot] [PATCH v5 2/7] dfu:usb: DFU USB function (f_dfu) support for g_dnl composite gadget Lukasz Majewski
2012-08-06 12:41 ` [U-Boot] [PATCH v5 3/7] dfu: DFU backend implementation Lukasz Majewski
2012-08-06 12:41 ` [U-Boot] [PATCH v5 4/7] dfu: MMC specific routines for DFU operation Lukasz Majewski
2012-08-06 12:41 ` [U-Boot] [PATCH v5 5/7] dfu:cmd: Support for DFU u-boot command Lukasz Majewski
2012-08-06 12:41 ` [U-Boot] [PATCH v5 6/7] arm:trats: Support for USB UDC driver at TRATS board Lukasz Majewski
2012-08-06 12:41 ` [U-Boot] [PATCH v5 7/7] arm:trats: Enable g_dnl composite USB gadget with embedded DFU function on TRATS Lukasz Majewski
2012-08-06 20:31 ` [U-Boot] [PATCH v5 0/7] dfu:usb: DFU support via USB Download gadget Marek Vasut
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20120704105610.25deee27@lmajewski.digital.local \
--to=l.majewski@samsung.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox