SPRZ496D October   2021  – May 2024 TMS320F280033 , TMS320F280034 , TMS320F280034-Q1 , TMS320F280036-Q1 , TMS320F280036C-Q1 , TMS320F280037 , TMS320F280037-Q1 , TMS320F280037C , TMS320F280037C-Q1 , TMS320F280038-Q1 , TMS320F280038C-Q1 , TMS320F280039 , TMS320F280039-Q1 , TMS320F280039C , TMS320F280039C-Q1

 

  1.   1
  2.   TMS320F28003x Real-Time MCUs Silicon ErrataSilicon Revision 0
  3. 1Usage Notes and Advisories Matrices
    1. 1.1 Usage Notes Matrix
    2. 1.2 Advisories Matrix
  4. 2Nomenclature, Package Symbolization, and Revision Identification
    1. 2.1 Device and Development-Support Tool Nomenclature
    2. 2.2 Devices Supported
    3. 2.3 Package Symbolization and Revision Identification
  5. 3Silicon Revision 0 Usage Notes and Advisories
    1. 3.1 Silicon Revision 0 Usage Notes
      1. 3.1.1 PIE: Spurious Nested Interrupt After Back-to-Back PIEACK Write and Manual CPU Interrupt Mask Clear
      2. 3.1.2 Caution While Using Nested Interrupts
      3. 3.1.3 Security: The primary layer of defense is securing the boundary of the chip, which begins with enabling JTAGLOCK and Zero-pin Boot to Flash feature
    2. 3.2 Silicon Revision 0 Advisories
      1. 3.2.1  Advisory
      2.      Advisory
      3.      Advisory
      4. 3.2.2  Advisory
      5.      Advisory
      6.      Advisory
      7.      Advisory
      8.      Advisory
      9. 3.2.3  Advisory
      10.      Advisory
      11. 3.2.4  Advisory
      12.      Advisory
      13.      Advisory
      14.      Advisory
      15. 3.2.5  Advisory
      16.      Advisory
      17. 3.2.6  Advisory
      18. 3.2.7  Advisory
      19.      Advisory
      20. 3.2.8  Advisory
      21.      Advisory
      22. 3.2.9  Advisory
      23. 3.2.10 Advisory
      24.      Advisory
      25.      Advisory
      26.      Advisory
      27.      Advisory
  6. 4Documentation Support
  7. 5Trademarks
  8. 6Revision History

Advisory

Flash: Execution of Fapi_setActiveFlashBank() Without Disabling Flash Prefetch may Cause ITRAP

Revisions Affected

0

Details

Flash prefetch mechanism should be disabled only by the code executing from RAM and only when there is not any active fetch access to flash. Fapi_setActiveFlashBank() disables the prefetch mechanism. Any flash execution can result in ITRAP when the prefetch-disable process is in progress; therefore, prefetch should be disabled before executing Fapi_setActiveFlashBank().

Workarounds

Disable the prefetch mechanism before calling Fapi_setActiveFlashBank(). Prefetch can be enabled after the execution of the Fapi_setActiveFlashBank(). Code that disables and enables the prefetch mechanism should be executed from RAM. When this workaround is implemented, note that Fapi_setActiveFlashBank() can be executed from flash (not from the bank on which the erase/program operations are targeted) since prefetch is already disabled.

Flash API usage examples provided in C2000Ware_5_02_00_00 (and onwards) depict the implementation of this workaround.

Path to the TMS320F28003x example:

C2000Ware_5_02_00_00\driverlib\f28003x\examples\flash\flashapi_ex1_programming.c

In this example, Flash_DisablePrefetch_SW_Workaround() is executed from RAM to disable the prefetch before calling Fapi_setActiveFlashBank(). Flash_EnablePrefetch_SW_Workaround() is executed from RAM to enable the prefetch after calling Fapi_setActiveFlashBank().