21 Jun 2012 16:47
[5876] trunk/urjtag/src/flash/intel.c: send Read Array command after block erase command and program command for intel flash
Revision 5876
Author jiez
Date 2012-06-21 10:47:27 -0400 (Thu, 21 Jun 2012)
Log Message
send Read Array command after block erase command and program command for intel flash This change is for flash chips like STMicroelectronics M58WR032KB.Modified Paths
Diff
Modified: trunk/urjtag/src/flash/intel.c (5875 => 5876)
--- trunk/urjtag/src/flash/intel.c 2012-06-17 16:04:30 UTC (rev 5875) +++ trunk/urjtag/src/flash/intel.c 2012-06-21 14:47:27 UTC (rev 5876) <at> <at> -199,7 +199,7 <at> <at> } /* Read Array */ - URJ_BUS_WRITE (bus, cfi_array->address + (0 << o), 0x00FF00FF); + URJ_BUS_WRITE (bus, cfi_array->address, 0x00FF00FF); } static void <at> <at> -250,6 +250,8 <at> <at> while (!((sr = URJ_BUS_READ (bus, cfi_array->address) & 0xFE) & CFI_INTEL_SR_READY)); /* TODO: add timeout */ + URJ_BUS_WRITE (bus, cfi_array->address, 0x00FF00FF); + switch (sr & ~CFI_INTEL_SR_READY) { case 0: <at> <at> -341,6 +343,8 <at> <at> while (!((sr = URJ_BUS_READ (bus, cfi_array->address) & 0xFE) & CFI_INTEL_SR_READY)); /* TODO: add timeout */ + URJ_BUS_WRITE (bus, cfi_array->address, 0x00FF00FF); + if (sr != CFI_INTEL_SR_READY) { urj_error_set (URJ_ERROR_FLASH_PROGRAM, <at> <at> -401,6 +405,9 <at> <at> /* poll SR7 == 1 */ while (!((sr = URJ_BUS_READ (bus, cfi_array->address) & 0xFE) & CFI_INTEL_SR_READY)); /* TODO: add timeout */ + + URJ_BUS_WRITE (bus, cfi_array->address, 0x00FF00FF); + if (sr != CFI_INTEL_SR_READY) { urj_error_set (URJ_ERROR_FLASH_PROGRAM, <at> <at> -461,6 +468,8 <at> <at> while (((sr = URJ_BUS_READ (bus, cfi_array->address) & 0x00FE00FE) & ((CFI_INTEL_SR_READY << 16) | CFI_INTEL_SR_READY)) != ((CFI_INTEL_SR_READY << 16) | CFI_INTEL_SR_READY)); /* TODO: add timeout */ + URJ_BUS_WRITE (bus, cfi_array->address, 0x00FF00FF); + if (sr != ((CFI_INTEL_SR_READY << 16) | CFI_INTEL_SR_READY)) { urj_error_set (URJ_ERROR_FLASH_ERASE, "sr = 0x%08lX", <at> <at> -525,6 +534,8 <at> <at> while (((sr = URJ_BUS_READ (bus, cfi_array->address) & 0x00FE00FE) & ((CFI_INTEL_SR_READY << 16) | CFI_INTEL_SR_READY)) != ((CFI_INTEL_SR_READY << 16) | CFI_INTEL_SR_READY)); /* TODO: add timeout */ + URJ_BUS_WRITE (bus, cfi_array->address, 0x00FF00FF); + if (sr != ((CFI_INTEL_SR_READY << 16) | CFI_INTEL_SR_READY)) { urj_error_set (URJ_ERROR_FLASH_PROGRAM, "sr = 0x%08lX",<div> <div> Revision <a href="http://blackfin.uclinux.org/gf/project/toolchain/scmsvn/?action=browse&path=/&view=rev&root=toolchain&revision=5876">5876</a> Author <a href="http://blackfin.uclinux.org/gf/user/jiez/">jiez</a> Date 2012-06-21 10:47:27 -0400 (Thu, 21 Jun 2012) <h3>Log Message</h3> send Read Array command after block erase command and program command for intel flash This change is for flash chips like STMicroelectronics M58WR032KB. <h3>Modified Paths</h3> <ul> <li><a href="#trunkurjtagsrcflashintelc">trunk/urjtag/src/flash/intel.c</a></li> </ul> </div> <div> <h3>Diff</h3> <a></a> <div class="modfile"> <h4>Modified: trunk/urjtag/src/flash/intel.c (5875 => 5876)</h4> <span> <span class="info">--- trunk/urjtag/src/flash/intel.c 2012-06-17 16:04:30 UTC (rev 5875) +++ trunk/urjtag/src/flash/intel.c 2012-06-21 14:47:27 UTC (rev 5876) </span><span class="lines"> <at> <at> -199,7 +199,7 <at> <at> </span><span class="cx"> } </span><span class="cx"> </span><span class="cx"> /* Read Array */ </span>- URJ_BUS_WRITE (bus, cfi_array->address + (0 << o), 0x00FF00FF); + URJ_BUS_WRITE (bus, cfi_array->address, 0x00FF00FF); <span class="cx"> } </span><span class="cx"> </span><span class="cx"> static void </span><span class="lines"> <at> <at> -250,6 +250,8 <at> <at> </span><span class="cx"> </span><span class="cx"> while (!((sr = URJ_BUS_READ (bus, cfi_array->address) & 0xFE) & CFI_INTEL_SR_READY)); /* TODO: add timeout */ </span><span class="cx"> </span>+ URJ_BUS_WRITE (bus, cfi_array->address, 0x00FF00FF); + <span class="cx"> switch (sr & ~CFI_INTEL_SR_READY) </span><span class="cx"> { </span><span class="cx"> case 0: </span><span class="lines"> <at> <at> -341,6 +343,8 <at> <at> </span><span class="cx"> </span><span class="cx"> while (!((sr = URJ_BUS_READ (bus, cfi_array->address) & 0xFE) & CFI_INTEL_SR_READY)); /* TODO: add timeout */ </span><span class="cx"> </span>+ URJ_BUS_WRITE (bus, cfi_array->address, 0x00FF00FF); + <span class="cx"> if (sr != CFI_INTEL_SR_READY) </span><span class="cx"> { </span><span class="cx"> urj_error_set (URJ_ERROR_FLASH_PROGRAM, </span><span class="lines"> <at> <at> -401,6 +405,9 <at> <at> </span><span class="cx"> </span><span class="cx"> /* poll SR7 == 1 */ </span><span class="cx"> while (!((sr = URJ_BUS_READ (bus, cfi_array->address) & 0xFE) & CFI_INTEL_SR_READY)); /* TODO: add timeout */ </span>+ + URJ_BUS_WRITE (bus, cfi_array->address, 0x00FF00FF); + <span class="cx"> if (sr != CFI_INTEL_SR_READY) </span><span class="cx"> { </span><span class="cx"> urj_error_set (URJ_ERROR_FLASH_PROGRAM, </span><span class="lines"> <at> <at> -461,6 +468,8 <at> <at> </span><span class="cx"> </span><span class="cx"> while (((sr = URJ_BUS_READ (bus, cfi_array->address) & 0x00FE00FE) & ((CFI_INTEL_SR_READY << 16) | CFI_INTEL_SR_READY)) != ((CFI_INTEL_SR_READY << 16) | CFI_INTEL_SR_READY)); /* TODO: add timeout */ </span><span class="cx"> </span>+ URJ_BUS_WRITE (bus, cfi_array->address, 0x00FF00FF); + <span class="cx"> if (sr != ((CFI_INTEL_SR_READY << 16) | CFI_INTEL_SR_READY)) </span><span class="cx"> { </span><span class="cx"> urj_error_set (URJ_ERROR_FLASH_ERASE, "sr = 0x%08lX", </span><span class="lines"> <at> <at> -525,6 +534,8 <at> <at> </span><span class="cx"> </span><span class="cx"> while (((sr = URJ_BUS_READ (bus, cfi_array->address) & 0x00FE00FE) & ((CFI_INTEL_SR_READY << 16) | CFI_INTEL_SR_READY)) != ((CFI_INTEL_SR_READY << 16) | CFI_INTEL_SR_READY)); /* TODO: add timeout */ </span><span class="cx"> </span>+ URJ_BUS_WRITE (bus, cfi_array->address, 0x00FF00FF); + <span class="cx"> if (sr != ((CFI_INTEL_SR_READY << 16) | CFI_INTEL_SR_READY)) </span><span class="cx"> { </span><span class="cx"> urj_error_set (URJ_ERROR_FLASH_PROGRAM, "sr = 0x%08lX", </span></span> </div> </div> </div>
RSS Feed