mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-04-14 10:21:33 +00:00
cfi_flash: Cleanup flash_print_info()
This patch does the following: - Extract code to detect if sector is erased into function sector_erased(). - Because of this, we don't have variable declarations inside the sector loop in flash_print_info() - Change "return" to "break" in the "if (ctrlc()) statement: This fixes a problem with the resulting output. Before this patch the output was: Sector Start Addresses: FC000000 FC020000 FC040000 => With this patch it is now: Sector Start Addresses: FC000000 FC020000 FC040000 => Signed-off-by: Stefan Roese <sr@denx.de> Cc: Kim Phillips <kim.phillips@freescale.com> Cc: Wolfgang Denk <wd@denx.de>
This commit is contained in:
parent
d77c7ac47e
commit
70084df712
1 changed files with 27 additions and 24 deletions
|
@ -1096,8 +1096,30 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
|
||||||
return rcode;
|
return rcode;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*-----------------------------------------------------------------------
|
#ifdef CONFIG_SYS_FLASH_EMPTY_INFO
|
||||||
*/
|
static int sector_erased(flash_info_t *info, int i)
|
||||||
|
{
|
||||||
|
int k;
|
||||||
|
int size;
|
||||||
|
volatile unsigned long *flash;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Check if whole sector is erased
|
||||||
|
*/
|
||||||
|
size = flash_sector_size(info, i);
|
||||||
|
flash = (volatile unsigned long *) info->start[i];
|
||||||
|
/* divide by 4 for longword access */
|
||||||
|
size = size >> 2;
|
||||||
|
|
||||||
|
for (k = 0; k < size; k++) {
|
||||||
|
if (*flash++ != 0xffffffff)
|
||||||
|
return 0; /* not erased */
|
||||||
|
}
|
||||||
|
|
||||||
|
return 1; /* erased */
|
||||||
|
}
|
||||||
|
#endif /* CONFIG_SYS_FLASH_EMPTY_INFO */
|
||||||
|
|
||||||
void flash_print_info (flash_info_t * info)
|
void flash_print_info (flash_info_t * info)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
@ -1162,33 +1184,14 @@ void flash_print_info (flash_info_t * info)
|
||||||
puts ("\n Sector Start Addresses:");
|
puts ("\n Sector Start Addresses:");
|
||||||
for (i = 0; i < info->sector_count; ++i) {
|
for (i = 0; i < info->sector_count; ++i) {
|
||||||
if (ctrlc())
|
if (ctrlc())
|
||||||
return;
|
break;
|
||||||
if ((i % 5) == 0)
|
if ((i % 5) == 0)
|
||||||
printf ("\n");
|
putc('\n');
|
||||||
#ifdef CONFIG_SYS_FLASH_EMPTY_INFO
|
#ifdef CONFIG_SYS_FLASH_EMPTY_INFO
|
||||||
int k;
|
|
||||||
int size;
|
|
||||||
int erased;
|
|
||||||
volatile unsigned long *flash;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Check if whole sector is erased
|
|
||||||
*/
|
|
||||||
size = flash_sector_size(info, i);
|
|
||||||
erased = 1;
|
|
||||||
flash = (volatile unsigned long *) info->start[i];
|
|
||||||
size = size >> 2; /* divide by 4 for longword access */
|
|
||||||
for (k = 0; k < size; k++) {
|
|
||||||
if (*flash++ != 0xffffffff) {
|
|
||||||
erased = 0;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* print empty and read-only info */
|
/* print empty and read-only info */
|
||||||
printf (" %08lX %c %s ",
|
printf (" %08lX %c %s ",
|
||||||
info->start[i],
|
info->start[i],
|
||||||
erased ? 'E' : ' ',
|
sector_erased(info, i) ? 'E' : ' ',
|
||||||
info->protect[i] ? "RO" : " ");
|
info->protect[i] ? "RO" : " ");
|
||||||
#else /* ! CONFIG_SYS_FLASH_EMPTY_INFO */
|
#else /* ! CONFIG_SYS_FLASH_EMPTY_INFO */
|
||||||
printf (" %08lX %s ",
|
printf (" %08lX %s ",
|
||||||
|
|
Loading…
Add table
Reference in a new issue