All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH 1/2] dfu:usb: Support for ext4
@ 2012-08-24  9:33 Lukasz Majewski
  2012-08-24  9:33 ` [U-Boot] [PATCH 2/2] dfu:usb:fix: Read the "filesize" environment variable only when file read Lukasz Majewski
  2012-08-24 14:31 ` [U-Boot] [PATCH 1/2] dfu:usb: Support for ext4 Marek Vasut
  0 siblings, 2 replies; 4+ messages in thread
From: Lukasz Majewski @ 2012-08-24  9:33 UTC (permalink / raw)
  To: u-boot

Support for ext4 file system handling at DFU.

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
---
 drivers/dfu/dfu_mmc.c |   32 ++++++++++++++++++++++++++------
 1 files changed, 26 insertions(+), 6 deletions(-)

diff --git a/drivers/dfu/dfu_mmc.c b/drivers/dfu/dfu_mmc.c
index 060145b..2270a61 100644
--- a/drivers/dfu/dfu_mmc.c
+++ b/drivers/dfu/dfu_mmc.c
@@ -63,10 +63,23 @@ static int mmc_file_op(enum dfu_mmc_op op, struct dfu_entity *dfu,
 	char *str_env;
 	int ret;
 
-	sprintf(cmd_buf, "fat%s mmc %d:%d 0x%x %s %lx",
-		op == DFU_OP_READ ? "load" : "write",
-		dfu->data.mmc.dev, dfu->data.mmc.part,
-		(unsigned int) buf, dfu->name, *len);
+	switch (dfu->layout) {
+	case DFU_FS_FAT:
+		sprintf(cmd_buf, "fat%s mmc %d:%d 0x%x %s %lx",
+			op == DFU_OP_READ ? "load" : "write",
+			dfu->data.mmc.dev, dfu->data.mmc.part,
+			(unsigned int) buf, dfu->name, *len);
+		break;
+	case DFU_FS_EXT4:
+		sprintf(cmd_buf, "ext4%s mmc %d:%d /%s 0x%x %ld",
+			op == DFU_OP_READ ? "load" : "write",
+			dfu->data.mmc.dev, dfu->data.mmc.part,
+			dfu->name, (unsigned int) buf, *len);
+		break;
+	default:
+		printf("%s: Layout (%s) not (yet) supported!\n", __func__,
+		       dfu_get_layout(dfu->layout));
+	}
 
 	debug("%s: %s 0x%p\n", __func__, cmd_buf, cmd_buf);
 
@@ -107,6 +120,7 @@ int dfu_write_medium_mmc(struct dfu_entity *dfu, void *buf, long *len)
 		ret = mmc_block_write(dfu, buf, len);
 		break;
 	case DFU_FS_FAT:
+	case DFU_FS_EXT4:
 		ret = mmc_file_write(dfu, buf, len);
 		break;
 	default:
@@ -126,6 +140,7 @@ int dfu_read_medium_mmc(struct dfu_entity *dfu, void *buf, long *len)
 		ret = mmc_block_read(dfu, buf, len);
 		break;
 	case DFU_FS_FAT:
+	case DFU_FS_EXT4:
 		ret = mmc_file_read(dfu, buf, len);
 		break;
 	default:
@@ -149,12 +164,17 @@ int dfu_fill_entity_mmc(struct dfu_entity *dfu, char *s)
 		dfu->data.mmc.lba_blk_size = get_mmc_blk_size(dfu->dev_num);
 	} else if (!strcmp(st, "fat")) {
 		dfu->layout = DFU_FS_FAT;
-		dfu->data.mmc.dev = simple_strtoul(s, &s, 10);
-		dfu->data.mmc.part = simple_strtoul(++s, &s, 10);
+	} else if (!strcmp(st, "ext4")) {
+		dfu->layout = DFU_FS_EXT4;
 	} else {
 		printf("%s: Memory layout (%s) not supported!\n", __func__, st);
 	}
 
+	if (dfu->layout == DFU_FS_EXT4 || dfu->layout == DFU_FS_FAT) {
+		dfu->data.mmc.dev = simple_strtoul(s, &s, 10);
+		dfu->data.mmc.part = simple_strtoul(++s, &s, 10);
+	}
+
 	dfu->read_medium = dfu_read_medium_mmc;
 	dfu->write_medium = dfu_write_medium_mmc;
 
-- 
1.7.2.3

^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2012-08-24 14:31 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-08-24  9:33 [U-Boot] [PATCH 1/2] dfu:usb: Support for ext4 Lukasz Majewski
2012-08-24  9:33 ` [U-Boot] [PATCH 2/2] dfu:usb:fix: Read the "filesize" environment variable only when file read Lukasz Majewski
2012-08-24 14:31   ` Marek Vasut
2012-08-24 14:31 ` [U-Boot] [PATCH 1/2] dfu:usb: Support for ext4 Marek Vasut

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.