cfi_flash: Fix indention

When long expressions surrounded by parentheses are split into multiple
lines, each consecutive line should be aligned with the corresponding
parenthesis. Fix all instances where this occurs.

Signed-off-by: Mario Six <mario.six@gdsys.cc>
Signed-off-by: Stefan Roese <sr@denx.de>
master
Mario Six 6 years ago committed by Stefan Roese
parent ddcf05403d
commit c0350fbf4c
  1. 238
      drivers/mtd/cfi_flash.c

@ -213,7 +213,7 @@ flash_map(flash_info_t *info, flash_sect_t sect, uint offset)
} }
static inline void flash_unmap(flash_info_t *info, flash_sect_t sect, static inline void flash_unmap(flash_info_t *info, flash_sect_t sect,
unsigned int offset, void *addr) unsigned int offset, void *addr)
{ {
} }
@ -329,7 +329,7 @@ static ulong flash_read_long (flash_info_t *info, flash_sect_t sect,
#ifdef DEBUG #ifdef DEBUG
debug("long addr is at %p info->portwidth = %d\n", addr, debug("long addr is at %p info->portwidth = %d\n", addr,
info->portwidth); info->portwidth);
for (x = 0; x < 4 * info->portwidth; x++) for (x = 0; x < 4 * info->portwidth; x++)
debug("addr[%x] = 0x%x\n", x, flash_read8(addr + x)); debug("addr[%x] = 0x%x\n", x, flash_read8(addr + x));
#endif #endif
@ -363,19 +363,19 @@ static void flash_write_cmd(flash_info_t *info, flash_sect_t sect,
switch (info->portwidth) { switch (info->portwidth) {
case FLASH_CFI_8BIT: case FLASH_CFI_8BIT:
debug("fwc addr %p cmd %x %x 8bit x %d bit\n", addr, cmd, debug("fwc addr %p cmd %x %x 8bit x %d bit\n", addr, cmd,
cword.w8, info->chipwidth << CFI_FLASH_SHIFT_WIDTH); cword.w8, info->chipwidth << CFI_FLASH_SHIFT_WIDTH);
flash_write8(cword.w8, addr); flash_write8(cword.w8, addr);
break; break;
case FLASH_CFI_16BIT: case FLASH_CFI_16BIT:
debug("fwc addr %p cmd %x %4.4x 16bit x %d bit\n", addr, debug("fwc addr %p cmd %x %4.4x 16bit x %d bit\n", addr,
cmd, cword.w16, cmd, cword.w16,
info->chipwidth << CFI_FLASH_SHIFT_WIDTH); info->chipwidth << CFI_FLASH_SHIFT_WIDTH);
flash_write16(cword.w16, addr); flash_write16(cword.w16, addr);
break; break;
case FLASH_CFI_32BIT: case FLASH_CFI_32BIT:
debug("fwc addr %p cmd %x %8.8x 32bit x %d bit\n", addr, debug("fwc addr %p cmd %x %8.8x 32bit x %d bit\n", addr,
cmd, cword.w32, cmd, cword.w32,
info->chipwidth << CFI_FLASH_SHIFT_WIDTH); info->chipwidth << CFI_FLASH_SHIFT_WIDTH);
flash_write32(cword.w32, addr); flash_write32(cword.w32, addr);
break; break;
case FLASH_CFI_64BIT: case FLASH_CFI_64BIT:
@ -386,8 +386,8 @@ static void flash_write_cmd(flash_info_t *info, flash_sect_t sect,
print_longlong(str, cword.w64); print_longlong(str, cword.w64);
debug("fwrite addr %p cmd %x %s 64 bit x %d bit\n", debug("fwrite addr %p cmd %x %s 64 bit x %d bit\n",
addr, cmd, str, addr, cmd, str,
info->chipwidth << CFI_FLASH_SHIFT_WIDTH); info->chipwidth << CFI_FLASH_SHIFT_WIDTH);
} }
#endif #endif
flash_write64(cword.w64, addr); flash_write64(cword.w64, addr);
@ -408,8 +408,8 @@ static void flash_unlock_seq(flash_info_t *info, flash_sect_t sect)
/*----------------------------------------------------------------------- /*-----------------------------------------------------------------------
*/ */
static int flash_isequal(flash_info_t *info, flash_sect_t sect, static int flash_isequal(flash_info_t *info, flash_sect_t sect, uint offset,
uint offset, uchar cmd) uchar cmd)
{ {
void *addr; void *addr;
cfiword_t cword; cfiword_t cword;
@ -456,8 +456,8 @@ static int flash_isequal(flash_info_t *info, flash_sect_t sect,
/*----------------------------------------------------------------------- /*-----------------------------------------------------------------------
*/ */
static int flash_isset(flash_info_t *info, flash_sect_t sect, static int flash_isset(flash_info_t *info, flash_sect_t sect, uint offset,
uint offset, uchar cmd) uchar cmd)
{ {
void *addr; void *addr;
cfiword_t cword; cfiword_t cword;
@ -489,8 +489,8 @@ static int flash_isset(flash_info_t *info, flash_sect_t sect,
/*----------------------------------------------------------------------- /*-----------------------------------------------------------------------
*/ */
static int flash_toggle(flash_info_t *info, flash_sect_t sect, static int flash_toggle(flash_info_t *info, flash_sect_t sect, uint offset,
uint offset, uchar cmd) uchar cmd)
{ {
u8 *addr; u8 *addr;
cfiword_t cword; cfiword_t cword;
@ -544,12 +544,12 @@ static int flash_is_busy(flash_info_t *info, flash_sect_t sect)
#endif #endif
if (info->sr_supported) { if (info->sr_supported) {
flash_write_cmd(info, sect, info->addr_unlock1, flash_write_cmd(info, sect, info->addr_unlock1,
FLASH_CMD_READ_STATUS); FLASH_CMD_READ_STATUS);
retval = !flash_isset(info, sect, 0, retval = !flash_isset(info, sect, 0,
FLASH_STATUS_DONE); FLASH_STATUS_DONE);
} else { } else {
retval = flash_toggle(info, sect, 0, retval = flash_toggle(info, sect, 0,
AMD_STATUS_TOGGLE); AMD_STATUS_TOGGLE);
} }
break; break;
@ -565,7 +565,7 @@ static int flash_is_busy(flash_info_t *info, flash_sect_t sect)
* This routine does not set the flash to read-array mode. * This routine does not set the flash to read-array mode.
*/ */
static int flash_status_check(flash_info_t *info, flash_sect_t sector, static int flash_status_check(flash_info_t *info, flash_sect_t sector,
ulong tout, char *prompt) ulong tout, char *prompt)
{ {
ulong start; ulong start;
@ -586,8 +586,8 @@ static int flash_status_check(flash_info_t *info, flash_sect_t sector,
while (flash_is_busy(info, sector)) { while (flash_is_busy(info, sector)) {
if (get_timer(start) > tout) { if (get_timer(start) > tout) {
printf("Flash %s timeout at address %lx data %lx\n", printf("Flash %s timeout at address %lx data %lx\n",
prompt, info->start[sector], prompt, info->start[sector],
flash_read_long(info, sector, 0)); flash_read_long(info, sector, 0));
flash_write_cmd(info, sector, 0, info->cmd_reset); flash_write_cmd(info, sector, 0, info->cmd_reset);
udelay(1); udelay(1);
return ERR_TIMEOUT; return ERR_TIMEOUT;
@ -604,7 +604,7 @@ static int flash_status_check(flash_info_t *info, flash_sect_t sector,
* This routine sets the flash to read-array mode. * This routine sets the flash to read-array mode.
*/ */
static int flash_full_status_check(flash_info_t *info, flash_sect_t sector, static int flash_full_status_check(flash_info_t *info, flash_sect_t sector,
ulong tout, char *prompt) ulong tout, char *prompt)
{ {
int retcode; int retcode;
@ -614,10 +614,10 @@ static int flash_full_status_check(flash_info_t *info, flash_sect_t sector,
case CFI_CMDSET_INTEL_EXTENDED: case CFI_CMDSET_INTEL_EXTENDED:
case CFI_CMDSET_INTEL_STANDARD: case CFI_CMDSET_INTEL_STANDARD:
if (retcode == ERR_OK && if (retcode == ERR_OK &&
!flash_isset(info, sector, 0, FLASH_STATUS_DONE)) { !flash_isset(info, sector, 0, FLASH_STATUS_DONE)) {
retcode = ERR_INVAL; retcode = ERR_INVAL;
printf("Flash %s error at address %lx\n", prompt, printf("Flash %s error at address %lx\n", prompt,
info->start[sector]); info->start[sector]);
if (flash_isset(info, sector, 0, FLASH_STATUS_ECLBS | if (flash_isset(info, sector, 0, FLASH_STATUS_ECLBS |
FLASH_STATUS_PSLBS)) { FLASH_STATUS_PSLBS)) {
puts("Command Sequence Error.\n"); puts("Command Sequence Error.\n");
@ -765,7 +765,7 @@ static flash_sect_t find_sector(flash_info_t *info, ulong addr)
sector = 0; sector = 0;
while ((sector < info->sector_count - 1) && while ((sector < info->sector_count - 1) &&
(info->start[sector] < addr)) (info->start[sector] < addr))
sector++; sector++;
while ((info->start[sector] > addr) && (sector > 0)) while ((info->start[sector] > addr) && (sector > 0))
/* /*
@ -781,8 +781,7 @@ static flash_sect_t find_sector(flash_info_t *info, ulong addr)
/*----------------------------------------------------------------------- /*-----------------------------------------------------------------------
*/ */
static int flash_write_cfiword(flash_info_t *info, ulong dest, static int flash_write_cfiword(flash_info_t *info, ulong dest, cfiword_t cword)
cfiword_t cword)
{ {
void *dstaddr = (void *)dest; void *dstaddr = (void *)dest;
int flag; int flag;
@ -870,7 +869,7 @@ static int flash_write_cfiword(flash_info_t *info, ulong dest,
#ifdef CONFIG_SYS_FLASH_USE_BUFFER_WRITE #ifdef CONFIG_SYS_FLASH_USE_BUFFER_WRITE
static int flash_write_cfibuffer(flash_info_t *info, ulong dest, uchar *cp, static int flash_write_cfibuffer(flash_info_t *info, ulong dest, uchar *cp,
int len) int len)
{ {
flash_sect_t sector; flash_sect_t sector;
int cnt; int cnt;
@ -946,8 +945,8 @@ static int flash_write_cfibuffer(flash_info_t *info, ulong dest, uchar *cp,
flash_write_cmd(info, sector, 0, FLASH_CMD_READ_STATUS); flash_write_cmd(info, sector, 0, FLASH_CMD_READ_STATUS);
flash_write_cmd(info, sector, 0, write_cmd); flash_write_cmd(info, sector, 0, write_cmd);
retcode = flash_status_check(info, sector, retcode = flash_status_check(info, sector,
info->buffer_write_tout, info->buffer_write_tout,
"write to buffer"); "write to buffer");
if (retcode == ERR_OK) { if (retcode == ERR_OK) {
/* reduce the number of loops by the width of /* reduce the number of loops by the width of
* the port * the port
@ -978,7 +977,7 @@ static int flash_write_cfibuffer(flash_info_t *info, ulong dest, uchar *cp,
} }
} }
flash_write_cmd(info, sector, 0, flash_write_cmd(info, sector, 0,
FLASH_CMD_WRITE_BUFFER_CONFIRM); FLASH_CMD_WRITE_BUFFER_CONFIRM);
retcode = flash_full_status_check( retcode = flash_full_status_check(
info, sector, info->buffer_write_tout, info, sector, info->buffer_write_tout,
"buffer write"); "buffer write");
@ -1074,7 +1073,7 @@ int flash_erase(flash_info_t *info, int s_first, int s_last)
prot++; prot++;
if (prot) { if (prot) {
printf("- Warning: %d protected sectors will not be erased!\n", printf("- Warning: %d protected sectors will not be erased!\n",
prot); prot);
} else if (flash_verbose) { } else if (flash_verbose) {
putc('\n'); putc('\n');
} }
@ -1117,11 +1116,11 @@ int flash_erase(flash_info_t *info, int s_first, int s_last)
case CFI_CMDSET_INTEL_STANDARD: case CFI_CMDSET_INTEL_STANDARD:
case CFI_CMDSET_INTEL_EXTENDED: case CFI_CMDSET_INTEL_EXTENDED:
flash_write_cmd(info, sect, 0, flash_write_cmd(info, sect, 0,
FLASH_CMD_CLEAR_STATUS); FLASH_CMD_CLEAR_STATUS);
flash_write_cmd(info, sect, 0, flash_write_cmd(info, sect, 0,
FLASH_CMD_BLOCK_ERASE); FLASH_CMD_BLOCK_ERASE);
flash_write_cmd(info, sect, 0, flash_write_cmd(info, sect, 0,
FLASH_CMD_ERASE_CONFIRM); FLASH_CMD_ERASE_CONFIRM);
break; break;
case CFI_CMDSET_AMD_STANDARD: case CFI_CMDSET_AMD_STANDARD:
case CFI_CMDSET_AMD_EXTENDED: case CFI_CMDSET_AMD_EXTENDED:
@ -1131,7 +1130,7 @@ int flash_erase(flash_info_t *info, int s_first, int s_last)
AMD_CMD_ERASE_START); AMD_CMD_ERASE_START);
flash_unlock_seq(info, sect); flash_unlock_seq(info, sect);
flash_write_cmd(info, sect, 0, flash_write_cmd(info, sect, 0,
info->cmd_erase_sector); info->cmd_erase_sector);
break; break;
#ifdef CONFIG_FLASH_CFI_LEGACY #ifdef CONFIG_FLASH_CFI_LEGACY
case CFI_CMDSET_AMD_LEGACY: case CFI_CMDSET_AMD_LEGACY:
@ -1145,7 +1144,7 @@ int flash_erase(flash_info_t *info, int s_first, int s_last)
#endif #endif
default: default:
debug("Unknown flash vendor %d\n", debug("Unknown flash vendor %d\n",
info->vendor); info->vendor);
break; break;
} }
@ -1212,14 +1211,14 @@ void flash_print_info(flash_info_t *info)
} }
printf("%s flash (%d x %d)", printf("%s flash (%d x %d)",
info->name, info->name,
(info->portwidth << 3), (info->chipwidth << 3)); (info->portwidth << 3), (info->chipwidth << 3));
if (info->size < 1024 * 1024) if (info->size < 1024 * 1024)
printf(" Size: %ld kB in %d Sectors\n", printf(" Size: %ld kB in %d Sectors\n",
info->size >> 10, info->sector_count); info->size >> 10, info->sector_count);
else else
printf(" Size: %ld MB in %d Sectors\n", printf(" Size: %ld MB in %d Sectors\n",
info->size >> 20, info->sector_count); info->size >> 20, info->sector_count);
printf(" "); printf(" ");
switch (info->vendor) { switch (info->vendor) {
case CFI_CMDSET_INTEL_PROG_REGIONS: case CFI_CMDSET_INTEL_PROG_REGIONS:
@ -1247,21 +1246,20 @@ void flash_print_info(flash_info_t *info)
break; break;
} }
printf(" command set, Manufacturer ID: 0x%02X, Device ID: 0x", printf(" command set, Manufacturer ID: 0x%02X, Device ID: 0x",
info->manufacturer_id); info->manufacturer_id);
printf(info->chipwidth == FLASH_CFI_16BIT ? "%04X" : "%02X", printf(info->chipwidth == FLASH_CFI_16BIT ? "%04X" : "%02X",
info->device_id); info->device_id);
if ((info->device_id & 0xff) == 0x7E) { if ((info->device_id & 0xff) == 0x7E) {
printf(info->chipwidth == FLASH_CFI_16BIT ? "%04X" : "%02X", printf(info->chipwidth == FLASH_CFI_16BIT ? "%04X" : "%02X",
info->device_id2); info->device_id2);
} }
if (info->vendor == CFI_CMDSET_AMD_STANDARD && info->legacy_unlock) if (info->vendor == CFI_CMDSET_AMD_STANDARD && info->legacy_unlock)
printf("\n Advanced Sector Protection (PPB) enabled"); printf("\n Advanced Sector Protection (PPB) enabled");
printf("\n Erase timeout: %ld ms, write timeout: %ld ms\n", printf("\n Erase timeout: %ld ms, write timeout: %ld ms\n",
info->erase_blk_tout, info->erase_blk_tout, info->write_tout);
info->write_tout);
if (info->buffer_size > 1) { if (info->buffer_size > 1) {
printf(" Buffer write timeout: %ld ms, ", printf(" Buffer write timeout: %ld ms, ",
info->buffer_write_tout); info->buffer_write_tout);
printf("buffer size: %d bytes\n", info->buffer_size); printf("buffer size: %d bytes\n", info->buffer_size);
} }
@ -1274,13 +1272,13 @@ void flash_print_info(flash_info_t *info)
#ifdef CONFIG_SYS_FLASH_EMPTY_INFO #ifdef CONFIG_SYS_FLASH_EMPTY_INFO
/* 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],
sector_erased(info, i) ? '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 ",
info->start[i], info->start[i],
info->protect[i] ? "RO" : " "); info->protect[i] ? "RO" : " ");
#endif #endif
} }
putc('\n'); putc('\n');
@ -1446,7 +1444,7 @@ static inline int manufact_match(flash_info_t *info, u32 manu)
static int cfi_protect_bugfix(flash_info_t *info, long sector, int prot) static int cfi_protect_bugfix(flash_info_t *info, long sector, int prot)
{ {
if (manufact_match(info, INTEL_MANUFACT) && if (manufact_match(info, INTEL_MANUFACT) &&
info->device_id == NUMONYX_256MBIT) { info->device_id == NUMONYX_256MBIT) {
/* /*
* see errata called * see errata called
* "Numonyx Axcell P33/P30 Specification Update" :) * "Numonyx Axcell P33/P30 Specification Update" :)
@ -1487,15 +1485,15 @@ int flash_real_protect(flash_info_t *info, long sector, int prot)
case CFI_CMDSET_INTEL_EXTENDED: case CFI_CMDSET_INTEL_EXTENDED:
if (!cfi_protect_bugfix(info, sector, prot)) { if (!cfi_protect_bugfix(info, sector, prot)) {
flash_write_cmd(info, sector, 0, flash_write_cmd(info, sector, 0,
FLASH_CMD_CLEAR_STATUS); FLASH_CMD_CLEAR_STATUS);
flash_write_cmd(info, sector, 0, flash_write_cmd(info, sector, 0,
FLASH_CMD_PROTECT); FLASH_CMD_PROTECT);
if (prot) if (prot)
flash_write_cmd(info, sector, 0, flash_write_cmd(info, sector, 0,
FLASH_CMD_PROTECT_SET); FLASH_CMD_PROTECT_SET);
else else
flash_write_cmd(info, sector, 0, flash_write_cmd(info, sector, 0,
FLASH_CMD_PROTECT_CLEAR); FLASH_CMD_PROTECT_CLEAR);
} }
break; break;
case CFI_CMDSET_AMD_EXTENDED: case CFI_CMDSET_AMD_EXTENDED:
@ -1516,7 +1514,7 @@ int flash_real_protect(flash_info_t *info, long sector, int prot)
AMD_CMD_UNLOCK_START); AMD_CMD_UNLOCK_START);
if (info->device_id == ATM_ID_BV6416) if (info->device_id == ATM_ID_BV6416)
flash_write_cmd(info, sector, flash_write_cmd(info, sector,
0, ATM_CMD_UNLOCK_SECT); 0, ATM_CMD_UNLOCK_SECT);
} }
} }
if (info->legacy_unlock) { if (info->legacy_unlock) {
@ -1530,29 +1528,29 @@ int flash_real_protect(flash_info_t *info, long sector, int prot)
if (prot) { if (prot) {
if (lock_flag) { if (lock_flag) {
flash_write_cmd(info, sector, 0, flash_write_cmd(info, sector, 0,
AMD_CMD_PPB_LOCK_BC1); AMD_CMD_PPB_LOCK_BC1);
flash_write_cmd(info, sector, 0, flash_write_cmd(info, sector, 0,
AMD_CMD_PPB_LOCK_BC2); AMD_CMD_PPB_LOCK_BC2);
} }
debug("sector %ld %slocked\n", sector, debug("sector %ld %slocked\n", sector,
lock_flag ? "" : "already "); lock_flag ? "" : "already ");
} else { } else {
if (!lock_flag) { if (!lock_flag) {
debug("unlock %ld\n", sector); debug("unlock %ld\n", sector);
flash_write_cmd(info, 0, 0, flash_write_cmd(info, 0, 0,
AMD_CMD_PPB_UNLOCK_BC1); AMD_CMD_PPB_UNLOCK_BC1);
flash_write_cmd(info, 0, 0, flash_write_cmd(info, 0, 0,
AMD_CMD_PPB_UNLOCK_BC2); AMD_CMD_PPB_UNLOCK_BC2);
} }
debug("sector %ld %sunlocked\n", sector, debug("sector %ld %sunlocked\n", sector,
!lock_flag ? "" : "already "); !lock_flag ? "" : "already ");
} }
if (flag) if (flag)
enable_interrupts(); enable_interrupts();
if (flash_status_check(info, sector, if (flash_status_check(info, sector,
info->erase_blk_tout, info->erase_blk_tout,
prot ? "protect" : "unprotect")) prot ? "protect" : "unprotect"))
printf("status check error\n"); printf("status check error\n");
flash_write_cmd(info, 0, 0, flash_write_cmd(info, 0, 0,
@ -1580,7 +1578,7 @@ int flash_real_protect(flash_info_t *info, long sector, int prot)
*/ */
flash_write_cmd(info, sector, 0, FLASH_CMD_READ_STATUS); flash_write_cmd(info, sector, 0, FLASH_CMD_READ_STATUS);
retcode = flash_full_status_check(info, sector, info->erase_blk_tout, retcode = flash_full_status_check(info, sector, info->erase_blk_tout,
prot ? "protect" : "unprotect"); prot ? "protect" : "unprotect");
if (retcode == 0) { if (retcode == 0) {
info->protect[sector] = prot; info->protect[sector] = prot;
@ -1604,7 +1602,7 @@ int flash_real_protect(flash_info_t *info, long sector, int prot)
* flash_read_user_serial - read the OneTimeProgramming cells * flash_read_user_serial - read the OneTimeProgramming cells
*/ */
void flash_read_user_serial(flash_info_t *info, void *buffer, int offset, void flash_read_user_serial(flash_info_t *info, void *buffer, int offset,
int len) int len)
{ {
uchar *src; uchar *src;
uchar *dst; uchar *dst;
@ -1622,7 +1620,7 @@ void flash_read_user_serial(flash_info_t *info, void *buffer, int offset,
* flash_read_factory_serial - read the device Id from the protection area * flash_read_factory_serial - read the device Id from the protection area
*/ */
void flash_read_factory_serial(flash_info_t *info, void *buffer, int offset, void flash_read_factory_serial(flash_info_t *info, void *buffer, int offset,
int len) int len)
{ {
uchar *src; uchar *src;
@ -1667,7 +1665,7 @@ static void cmdset_intel_read_jedec_ids(flash_info_t *info)
flash_write_cmd(info, 0, 0, FLASH_CMD_READ_ID); flash_write_cmd(info, 0, 0, FLASH_CMD_READ_ID);
udelay(1000); /* some flash are slow to respond */ udelay(1000); /* some flash are slow to respond */
info->manufacturer_id = flash_read_uchar(info, info->manufacturer_id = flash_read_uchar(info,
FLASH_OFFSET_MANUFACTURER_ID); FLASH_OFFSET_MANUFACTURER_ID);
info->device_id = (info->chipwidth == FLASH_CFI_16BIT) ? info->device_id = (info->chipwidth == FLASH_CFI_16BIT) ?
flash_read_word(info, FLASH_OFFSET_DEVICE_ID) : flash_read_word(info, FLASH_OFFSET_DEVICE_ID) :
flash_read_uchar(info, FLASH_OFFSET_DEVICE_ID); flash_read_uchar(info, FLASH_OFFSET_DEVICE_ID);
@ -1684,8 +1682,8 @@ static int cmdset_intel_init(flash_info_t *info, struct cfi_qry *qry)
#ifdef CONFIG_SYS_FLASH_PROTECTION #ifdef CONFIG_SYS_FLASH_PROTECTION
/* read legacy lock/unlock bit from intel flash */ /* read legacy lock/unlock bit from intel flash */
if (info->ext_addr) { if (info->ext_addr) {
info->legacy_unlock = flash_read_uchar(info, info->legacy_unlock =
info->ext_addr + 5) & 0x08; flash_read_uchar(info, info->ext_addr + 5) & 0x08;
} }
#endif #endif
@ -1708,7 +1706,7 @@ static void cmdset_amd_read_jedec_ids(flash_info_t *info)
while (manu_id == FLASH_CONTINUATION_CODE && bank_id < 0x800) { while (manu_id == FLASH_CONTINUATION_CODE && bank_id < 0x800) {
bank_id += 0x100; bank_id += 0x100;
manu_id = flash_read_uchar(info, manu_id = flash_read_uchar(info,
bank_id | FLASH_OFFSET_MANUFACTURER_ID); bank_id | FLASH_OFFSET_MANUFACTURER_ID);
} }
info->manufacturer_id = manu_id; info->manufacturer_id = manu_id;
@ -1724,11 +1722,11 @@ static void cmdset_amd_read_jedec_ids(flash_info_t *info)
switch (info->chipwidth) { switch (info->chipwidth) {
case FLASH_CFI_8BIT: case FLASH_CFI_8BIT:
info->device_id = flash_read_uchar(info, info->device_id = flash_read_uchar(info,
FLASH_OFFSET_DEVICE_ID); FLASH_OFFSET_DEVICE_ID);
if (info->device_id == 0x7E) { if (info->device_id == 0x7E) {
/* AMD 3-byte (expanded) device ids */ /* AMD 3-byte (expanded) device ids */
info->device_id2 = flash_read_uchar(info, info->device_id2 = flash_read_uchar(info,
FLASH_OFFSET_DEVICE_ID2); FLASH_OFFSET_DEVICE_ID2);
info->device_id2 <<= 8; info->device_id2 <<= 8;
info->device_id2 |= flash_read_uchar(info, info->device_id2 |= flash_read_uchar(info,
FLASH_OFFSET_DEVICE_ID3); FLASH_OFFSET_DEVICE_ID3);
@ -1736,11 +1734,11 @@ static void cmdset_amd_read_jedec_ids(flash_info_t *info)
break; break;
case FLASH_CFI_16BIT: case FLASH_CFI_16BIT:
info->device_id = flash_read_word(info, info->device_id = flash_read_word(info,
FLASH_OFFSET_DEVICE_ID); FLASH_OFFSET_DEVICE_ID);
if ((info->device_id & 0xff) == 0x7E) { if ((info->device_id & 0xff) == 0x7E) {
/* AMD 3-byte (expanded) device ids */ /* AMD 3-byte (expanded) device ids */
info->device_id2 = flash_read_uchar(info, info->device_id2 = flash_read_uchar(info,
FLASH_OFFSET_DEVICE_ID2); FLASH_OFFSET_DEVICE_ID2);
info->device_id2 <<= 8; info->device_id2 <<= 8;
info->device_id2 |= flash_read_uchar(info, info->device_id2 |= flash_read_uchar(info,
FLASH_OFFSET_DEVICE_ID3); FLASH_OFFSET_DEVICE_ID3);
@ -1821,7 +1819,7 @@ static int flash_detect_legacy(phys_addr_t base, int banknum)
info->portwidth, info->portwidth,
MAP_NOCACHE); MAP_NOCACHE);
if (info->portwidth == FLASH_CFI_8BIT && if (info->portwidth == FLASH_CFI_8BIT &&
info->interface == FLASH_CFI_X8X16) { info->interface == FLASH_CFI_X8X16) {
info->addr_unlock1 = 0x2AAA; info->addr_unlock1 = 0x2AAA;
info->addr_unlock2 = 0x5555; info->addr_unlock2 = 0x5555;
} else { } else {
@ -1830,9 +1828,9 @@ static int flash_detect_legacy(phys_addr_t base, int banknum)
} }
flash_read_jedec_ids(info); flash_read_jedec_ids(info);
debug("JEDEC PROBE: ID %x %x %x\n", debug("JEDEC PROBE: ID %x %x %x\n",
info->manufacturer_id, info->manufacturer_id,
info->device_id, info->device_id,
info->device_id2); info->device_id2);
if (jedec_flash_match(info, info->start[0])) if (jedec_flash_match(info, info->start[0]))
break; break;
@ -1869,8 +1867,8 @@ static inline int flash_detect_legacy(phys_addr_t base, int banknum)
* detect if flash is compatible with the Common Flash Interface (CFI) * detect if flash is compatible with the Common Flash Interface (CFI)
* http://www.jedec.org/download/search/jesd68.pdf * http://www.jedec.org/download/search/jesd68.pdf
*/ */
static void flash_read_cfi(flash_info_t *info, void *buf, static void flash_read_cfi(flash_info_t *info, void *buf, unsigned int start,
unsigned int start, size_t len) size_t len)
{ {
u8 *p = buf; u8 *p = buf;
unsigned int i; unsigned int i;
@ -1904,22 +1902,22 @@ static int __flash_detect_cfi(flash_info_t *info, struct cfi_qry *qry)
for (cfi_offset = 0; cfi_offset < ARRAY_SIZE(flash_offset_cfi); for (cfi_offset = 0; cfi_offset < ARRAY_SIZE(flash_offset_cfi);
cfi_offset++) { cfi_offset++) {
flash_write_cmd(info, 0, flash_offset_cfi[cfi_offset], flash_write_cmd(info, 0, flash_offset_cfi[cfi_offset],
FLASH_CMD_CFI); FLASH_CMD_CFI);
if (flash_isequal(info, 0, FLASH_OFFSET_CFI_RESP, 'Q') && if (flash_isequal(info, 0, FLASH_OFFSET_CFI_RESP, 'Q') &&
flash_isequal(info, 0, FLASH_OFFSET_CFI_RESP + 1, 'R') && flash_isequal(info, 0, FLASH_OFFSET_CFI_RESP + 1, 'R') &&
flash_isequal(info, 0, FLASH_OFFSET_CFI_RESP + 2, 'Y')) { flash_isequal(info, 0, FLASH_OFFSET_CFI_RESP + 2, 'Y')) {
flash_read_cfi(info, qry, FLASH_OFFSET_CFI_RESP, flash_read_cfi(info, qry, FLASH_OFFSET_CFI_RESP,
sizeof(struct cfi_qry)); sizeof(struct cfi_qry));
info->interface = le16_to_cpu(qry->interface_desc); info->interface = le16_to_cpu(qry->interface_desc);
info->cfi_offset = flash_offset_cfi[cfi_offset]; info->cfi_offset = flash_offset_cfi[cfi_offset];
debug("device interface is %d\n", debug("device interface is %d\n",
info->interface); info->interface);
debug("found port %d chip %d ", debug("found port %d chip %d ",
info->portwidth, info->chipwidth); info->portwidth, info->chipwidth);
debug("port %d bits chip %d bits\n", debug("port %d bits chip %d bits\n",
info->portwidth << CFI_FLASH_SHIFT_WIDTH, info->portwidth << CFI_FLASH_SHIFT_WIDTH,
info->chipwidth << CFI_FLASH_SHIFT_WIDTH); info->chipwidth << CFI_FLASH_SHIFT_WIDTH);
/* calculate command offsets as in the Linux driver */ /* calculate command offsets as in the Linux driver */
info->addr_unlock1 = 0x555; info->addr_unlock1 = 0x555;
@ -2051,11 +2049,11 @@ static void flash_fixup_num(flash_info_t *info, struct cfi_qry *qry)
* So adjust the buffer size for M29EW while operating in 8-bit mode * So adjust the buffer size for M29EW while operating in 8-bit mode
*/ */
if (qry->max_buf_write_size > 0x8 && if (qry->max_buf_write_size > 0x8 &&
info->device_id == 0x7E && info->device_id == 0x7E &&
(info->device_id2 == 0x2201 || (info->device_id2 == 0x2201 ||
info->device_id2 == 0x2301 || info->device_id2 == 0x2301 ||
info->device_id2 == 0x2801 || info->device_id2 == 0x2801 ||
info->device_id2 == 0x4801)) { info->device_id2 == 0x4801)) {
debug("Adjusted buffer size on Numonyx flash"); debug("Adjusted buffer size on Numonyx flash");
debug(" M29EW family in 8 bit mode\n"); debug(" M29EW family in 8 bit mode\n");
qry->max_buf_write_size = 0x8; qry->max_buf_write_size = 0x8;
@ -2118,7 +2116,7 @@ ulong flash_get_size(phys_addr_t base, int banknum)
break; break;
default: default:
printf("CFI: Unknown command set 0x%x\n", printf("CFI: Unknown command set 0x%x\n",
info->vendor); info->vendor);
/* /*
* Unfortunately, this means we don't know how * Unfortunately, this means we don't know how
* to get the chip back to Read mode. Might * to get the chip back to Read mode. Might
@ -2157,12 +2155,12 @@ ulong flash_get_size(phys_addr_t base, int banknum)
size_ratio = info->portwidth / info->chipwidth; size_ratio = info->portwidth / info->chipwidth;
/* if the chip is x8/x16 reduce the ratio by half */ /* if the chip is x8/x16 reduce the ratio by half */
if (info->interface == FLASH_CFI_X8X16 && if (info->interface == FLASH_CFI_X8X16 &&
info->chipwidth == FLASH_CFI_BY8) { info->chipwidth == FLASH_CFI_BY8) {
size_ratio >>= 1; size_ratio >>= 1;
} }
debug("size_ratio %d port %d bits chip %d bits\n", debug("size_ratio %d port %d bits chip %d bits\n",
size_ratio, info->portwidth << CFI_FLASH_SHIFT_WIDTH, size_ratio, info->portwidth << CFI_FLASH_SHIFT_WIDTH,
info->chipwidth << CFI_FLASH_SHIFT_WIDTH); info->chipwidth << CFI_FLASH_SHIFT_WIDTH);
info->size = 1 << qry.dev_size; info->size = 1 << qry.dev_size;
/* multiply the size by the number of chips */ /* multiply the size by the number of chips */
info->size *= size_ratio; info->size *= size_ratio;
@ -2177,7 +2175,7 @@ ulong flash_get_size(phys_addr_t base, int banknum)
for (i = 0; i < num_erase_regions; i++) { for (i = 0; i < num_erase_regions; i++) {
if (i > NUM_ERASE_REGIONS) { if (i > NUM_ERASE_REGIONS) {
printf("%d erase regions found, only %d used\n", printf("%d erase regions found, only %d used\n",
num_erase_regions, NUM_ERASE_REGIONS); num_erase_regions, NUM_ERASE_REGIONS);
break; break;
} }
@ -2221,8 +2219,8 @@ ulong flash_get_size(phys_addr_t base, int banknum)
FLASH_CMD_READ_ID); FLASH_CMD_READ_ID);
info->protect[sect_cnt] = info->protect[sect_cnt] =
flash_isset(info, sect_cnt, flash_isset(info, sect_cnt,
FLASH_OFFSET_PROTECT, FLASH_OFFSET_PROTECT,
FLASH_STATUS_PROTECT); FLASH_STATUS_PROTECT);
flash_write_cmd(info, sect_cnt, 0, flash_write_cmd(info, sect_cnt, 0,
FLASH_CMD_RESET); FLASH_CMD_RESET);
break; break;
@ -2332,25 +2330,25 @@ static void flash_protect_default(void)
#if (CONFIG_SYS_MONITOR_BASE >= CONFIG_SYS_FLASH_BASE) && \ #if (CONFIG_SYS_MONITOR_BASE >= CONFIG_SYS_FLASH_BASE) && \
(!defined(CONFIG_MONITOR_IS_IN_RAM)) (!defined(CONFIG_MONITOR_IS_IN_RAM))
flash_protect(FLAG_PROTECT_SET, flash_protect(FLAG_PROTECT_SET,
CONFIG_SYS_MONITOR_BASE, CONFIG_SYS_MONITOR_BASE,
CONFIG_SYS_MONITOR_BASE + monitor_flash_len - 1, CONFIG_SYS_MONITOR_BASE + monitor_flash_len - 1,
flash_get_info(CONFIG_SYS_MONITOR_BASE)); flash_get_info(CONFIG_SYS_MONITOR_BASE));
#endif #endif
/* Environment protection ON by default */ /* Environment protection ON by default */
#ifdef CONFIG_ENV_IS_IN_FLASH #ifdef CONFIG_ENV_IS_IN_FLASH
flash_protect(FLAG_PROTECT_SET, flash_protect(FLAG_PROTECT_SET,
CONFIG_ENV_ADDR, CONFIG_ENV_ADDR,
CONFIG_ENV_ADDR + CONFIG_ENV_SECT_SIZE - 1, CONFIG_ENV_ADDR + CONFIG_ENV_SECT_SIZE - 1,
flash_get_info(CONFIG_ENV_ADDR)); flash_get_info(CONFIG_ENV_ADDR));
#endif #endif
/* Redundant environment protection ON by default */ /* Redundant environment protection ON by default */
#ifdef CONFIG_ENV_ADDR_REDUND #ifdef CONFIG_ENV_ADDR_REDUND
flash_protect(FLAG_PROTECT_SET, flash_protect(FLAG_PROTECT_SET,
CONFIG_ENV_ADDR_REDUND, CONFIG_ENV_ADDR_REDUND,
CONFIG_ENV_ADDR_REDUND + CONFIG_ENV_SECT_SIZE - 1, CONFIG_ENV_ADDR_REDUND + CONFIG_ENV_SECT_SIZE - 1,
flash_get_info(CONFIG_ENV_ADDR_REDUND)); flash_get_info(CONFIG_ENV_ADDR_REDUND));
#endif #endif
#if defined(CONFIG_SYS_FLASH_AUTOPROTECT_LIST) #if defined(CONFIG_SYS_FLASH_AUTOPROTECT_LIST)
@ -2358,9 +2356,9 @@ static void flash_protect_default(void)
debug("autoprotecting from %08lx to %08lx\n", debug("autoprotecting from %08lx to %08lx\n",
apl[i].start, apl[i].start + apl[i].size - 1); apl[i].start, apl[i].start + apl[i].size - 1);
flash_protect(FLAG_PROTECT_SET, flash_protect(FLAG_PROTECT_SET,
apl[i].start, apl[i].start,
apl[i].start + apl[i].size - 1, apl[i].start + apl[i].size - 1,
flash_get_info(apl[i].start)); flash_get_info(apl[i].start));
} }
#endif #endif
} }
@ -2396,8 +2394,8 @@ unsigned long flash_init(void)
#ifndef CONFIG_SYS_FLASH_QUIET_TEST #ifndef CONFIG_SYS_FLASH_QUIET_TEST
printf("## Unknown flash on Bank %d ", i + 1); printf("## Unknown flash on Bank %d ", i + 1);
printf("- Size = 0x%08lx = %ld MB\n", printf("- Size = 0x%08lx = %ld MB\n",
flash_info[i].size, flash_info[i].size,
flash_info[i].size >> 20); flash_info[i].size >> 20);
#endif /* CONFIG_SYS_FLASH_QUIET_TEST */ #endif /* CONFIG_SYS_FLASH_QUIET_TEST */
} }
#ifdef CONFIG_SYS_FLASH_PROTECTION #ifdef CONFIG_SYS_FLASH_PROTECTION
@ -2441,10 +2439,10 @@ unsigned long flash_init(void)
* No legancy unlocking -> unlock all sectors * No legancy unlocking -> unlock all sectors
*/ */
flash_protect(FLAG_PROTECT_CLEAR, flash_protect(FLAG_PROTECT_CLEAR,
flash_info[i].start[0], flash_info[i].start[0],
flash_info[i].start[0] flash_info[i].start[0]
+ flash_info[i].size - 1, + flash_info[i].size - 1,
&flash_info[i]); &flash_info[i]);
} }
} }
#endif /* CONFIG_SYS_FLASH_PROTECTION */ #endif /* CONFIG_SYS_FLASH_PROTECTION */

Loading…
Cancel
Save