[U-Boot-Users] [PATCH] Add a flash programming end marker and progress dots
Jerry Van Baren
gvb.uboot at gmail.com
Fri Mar 7 03:16:51 CET 2008
Signed-off-by: Gerald Van Baren <vanbaren at cideas.com>
---
OK, how about this for a compromise for end marker and progress dots?
common/cmd_mem.c | 2 +-
drivers/mtd/cfi_flash.c | 13 +++++++++++++
2 files changed, 14 insertions(+), 1 deletions(-)
diff --git a/common/cmd_mem.c b/common/cmd_mem.c
index 4262e26..b55d243 100644
--- a/common/cmd_mem.c
+++ b/common/cmd_mem.c
@@ -422,7 +422,7 @@ int do_mem_cp ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
) {
int rc;
- puts ("Copy to Flash... ");
+ puts ("Copy to Flash\n");
rc = flash_write ((char *)addr, dest, count*size);
if (rc != 0) {
diff --git a/drivers/mtd/cfi_flash.c b/drivers/mtd/cfi_flash.c
index 439c950..eebe86a 100644
--- a/drivers/mtd/cfi_flash.c
+++ b/drivers/mtd/cfi_flash.c
@@ -1188,6 +1188,7 @@ void flash_print_info (flash_info_t * info)
int write_buff (flash_info_t * info, uchar * src, ulong addr, ulong cnt)
{
ulong wp;
+ ulong dots = 0;
uchar *p;
int aln;
cfiword_t cword;
@@ -1196,6 +1197,10 @@ int write_buff (flash_info_t * info, uchar * src, ulong addr, ulong cnt)
#ifdef CFG_FLASH_USE_BUFFER_WRITE
int buffered_size;
#endif
+
+ /* print an end marker for visible feedback */
+ printf("%*c\r", (cnt + (1 << 14) - 1) / (1 << 14), '|');
+
/* get lower aligned address */
wp = (addr & ~(info->portwidth - 1));
@@ -1248,6 +1253,9 @@ int write_buff (flash_info_t * info, uchar * src, ulong addr, ulong cnt)
wp += i;
src += i;
cnt -= i;
+ dots += i;
+ if ((dots % (1 << 14)) == 0)
+ putc ('.');
}
#else
while (cnt >= info->portwidth) {
@@ -1259,8 +1267,13 @@ int write_buff (flash_info_t * info, uchar * src, ulong addr, ulong cnt)
return rc;
wp += info->portwidth;
cnt -= info->portwidth;
+ dots += info->portwidth;
+ if ((dots % (1 << 14)) == 0)
+ putc ('.');
}
#endif /* CFG_FLASH_USE_BUFFER_WRITE */
+ putc ('\n');
+
if (cnt == 0) {
return (0);
}
--
1.5.4.1
More information about the U-Boot
mailing list