mirror of
https://github.com/AsahiLinux/u-boot
synced 2025-03-01 13:57:24 +00:00
Merge branch 'master' of git://www.denx.de/git/u-boot-cfi-flash
This commit is contained in:
commit
e334e05ba0
2 changed files with 44 additions and 1 deletions
5
README
5
README
|
@ -1946,6 +1946,11 @@ Configuration Settings:
|
||||||
is useful, if some of the configured banks are only
|
is useful, if some of the configured banks are only
|
||||||
optionally available.
|
optionally available.
|
||||||
|
|
||||||
|
- CONFIG_FLASH_SHOW_PROGRESS
|
||||||
|
If defined (must be an integer), print out countdown
|
||||||
|
digits and dots. Recommended value: 45 (9..1) for 80
|
||||||
|
column displays, 15 (3..1) for 40 column displays.
|
||||||
|
|
||||||
- CFG_RX_ETH_BUFFER:
|
- CFG_RX_ETH_BUFFER:
|
||||||
Defines the number of ethernet receive buffers. On some
|
Defines the number of ethernet receive buffers. On some
|
||||||
ethernet controllers it is recommended to set this value
|
ethernet controllers it is recommended to set this value
|
||||||
|
|
|
@ -1179,6 +1179,27 @@ void flash_print_info (flash_info_t * info)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*-----------------------------------------------------------------------
|
||||||
|
* This is used in a few places in write_buf() to show programming
|
||||||
|
* progress. Making it a function is nasty because it needs to do side
|
||||||
|
* effect updates to digit and dots. Repeated code is nasty too, so
|
||||||
|
* we define it once here.
|
||||||
|
*/
|
||||||
|
#ifdef CONFIG_FLASH_SHOW_PROGRESS
|
||||||
|
#define FLASH_SHOW_PROGRESS(scale, dots, digit, dots_sub) \
|
||||||
|
dots -= dots_sub; \
|
||||||
|
if ((scale > 0) && (dots <= 0)) { \
|
||||||
|
if ((digit % 5) == 0) \
|
||||||
|
printf ("%d", digit / 5); \
|
||||||
|
else \
|
||||||
|
putc ('.'); \
|
||||||
|
digit--; \
|
||||||
|
dots += scale; \
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
#define FLASH_SHOW_PROGRESS(scale, dots, digit, dots_sub)
|
||||||
|
#endif
|
||||||
|
|
||||||
/*-----------------------------------------------------------------------
|
/*-----------------------------------------------------------------------
|
||||||
* Copy memory to flash, returns:
|
* Copy memory to flash, returns:
|
||||||
* 0 - OK
|
* 0 - OK
|
||||||
|
@ -1192,10 +1213,23 @@ int write_buff (flash_info_t * info, uchar * src, ulong addr, ulong cnt)
|
||||||
int aln;
|
int aln;
|
||||||
cfiword_t cword;
|
cfiword_t cword;
|
||||||
int i, rc;
|
int i, rc;
|
||||||
|
|
||||||
#ifdef CFG_FLASH_USE_BUFFER_WRITE
|
#ifdef CFG_FLASH_USE_BUFFER_WRITE
|
||||||
int buffered_size;
|
int buffered_size;
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef CONFIG_FLASH_SHOW_PROGRESS
|
||||||
|
int digit = CONFIG_FLASH_SHOW_PROGRESS;
|
||||||
|
int scale = 0;
|
||||||
|
int dots = 0;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Suppress if there are fewer than CONFIG_FLASH_SHOW_PROGRESS writes.
|
||||||
|
*/
|
||||||
|
if (cnt >= CONFIG_FLASH_SHOW_PROGRESS) {
|
||||||
|
scale = (int)((cnt + CONFIG_FLASH_SHOW_PROGRESS - 1) /
|
||||||
|
CONFIG_FLASH_SHOW_PROGRESS);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* get lower aligned address */
|
/* get lower aligned address */
|
||||||
wp = (addr & ~(info->portwidth - 1));
|
wp = (addr & ~(info->portwidth - 1));
|
||||||
|
|
||||||
|
@ -1219,6 +1253,7 @@ int write_buff (flash_info_t * info, uchar * src, ulong addr, ulong cnt)
|
||||||
return rc;
|
return rc;
|
||||||
|
|
||||||
wp += i;
|
wp += i;
|
||||||
|
FLASH_SHOW_PROGRESS(scale, dots, digit, i);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* handle the aligned part */
|
/* handle the aligned part */
|
||||||
|
@ -1248,6 +1283,7 @@ int write_buff (flash_info_t * info, uchar * src, ulong addr, ulong cnt)
|
||||||
wp += i;
|
wp += i;
|
||||||
src += i;
|
src += i;
|
||||||
cnt -= i;
|
cnt -= i;
|
||||||
|
FLASH_SHOW_PROGRESS(scale, dots, digit, i);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
while (cnt >= info->portwidth) {
|
while (cnt >= info->portwidth) {
|
||||||
|
@ -1259,8 +1295,10 @@ int write_buff (flash_info_t * info, uchar * src, ulong addr, ulong cnt)
|
||||||
return rc;
|
return rc;
|
||||||
wp += info->portwidth;
|
wp += info->portwidth;
|
||||||
cnt -= info->portwidth;
|
cnt -= info->portwidth;
|
||||||
|
FLASH_SHOW_PROGRESS(scale, dots, digit, info->portwidth);
|
||||||
}
|
}
|
||||||
#endif /* CFG_FLASH_USE_BUFFER_WRITE */
|
#endif /* CFG_FLASH_USE_BUFFER_WRITE */
|
||||||
|
|
||||||
if (cnt == 0) {
|
if (cnt == 0) {
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue