
On Tue, 14 Sep 2021 05:27:51 +0200 Marek Vasut marex@denx.de wrote:
Add dfu_alt_info option which allows specifying multiple SPI flashes as an alt info. The syntax is as follows:
altname sf bus:cs[:speed[:mode]]
Example: dfu_alt_info=qspi0 sf 0:0;qspi1 sf 0:1
Signed-off-by: Marek Vasut marex@denx.de Cc: Lukasz Majewski lukma@denx.de
drivers/dfu/dfu_sf.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-)
diff --git a/drivers/dfu/dfu_sf.c b/drivers/dfu/dfu_sf.c index b72493ced86..d246e1b21ff 100644 --- a/drivers/dfu/dfu_sf.c +++ b/drivers/dfu/dfu_sf.c @@ -168,22 +168,31 @@ static struct spi_flash *parse_dev(char *devstr) int dfu_fill_entity_sf(struct dfu_entity *dfu, char *devstr, char *s) { char *st;
char *devstr_bkup = strdup(devstr);
dfu->data.sf.dev = parse_dev(devstr_bkup);
free(devstr_bkup);
if (!dfu->data.sf.dev)
return -ENODEV;
dfu->dev_type = DFU_DEV_SF; dfu->max_buf_size = dfu->data.sf.dev->sector_size;
st = strsep(&s, " "); if (!strcmp(st, "raw")) {
char *devstr_bkup = strdup(devstr);
dfu->data.sf.dev = parse_dev(devstr_bkup);
free(devstr_bkup);
if (!dfu->data.sf.dev)
return -ENODEV;
- dfu->layout = DFU_RAW_ADDR; dfu->data.sf.start = hextoul(s, &s); s++; dfu->data.sf.size = hextoul(s, &s);
- } else if (!strcmp(st, "sf")) {
st = strsep(&s, " ");
dfu->data.sf.dev = parse_dev(st);
if (!dfu->data.sf.dev)
return -ENODEV;
dfu->layout = DFU_RAW_ADDR;
dfu->data.sf.start = 0;
} else if (CONFIG_IS_ENABLED(DFU_SF_PART) && (!strcmp(st, "part") || !strcmp(st, "partubi"))) { char mtd_id[32];dfu->data.sf.size = dfu->data.sf.dev->size;
Reviewed-by: Lukasz Majewski lukma@denx.de
Best regards,
Lukasz Majewski
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma@denx.de