25.6.8.7 SmartEEPROM Sector Reallocation

By default, the SEES reallocation is performed in hardware when the next available page in the Host index reaches the maximum SEEP number. Automatic reallocation can be disabled by writing a one in SEECFG.APRDIS. The sector reallocation can also be triggered manually by issuing the SEERALOC command. The SEES reallocation process consists of the following:

  • Erase the non-active sector.
  • Copying valid data from the active sector to another sector, old data is filtered.
  • Swap ASEES either by issuing the ASEES1 command if SEESTAT.ASEES is reading ‘0’ or by issuing the ASEES0 command if SEESTAT.ASEES is read as ‘1’.

By default, this process is automatically handled by hardware, and indicated by the SEESTAT.BUSY flag. If in buffered mode, the page buffer must be flushed before triggering a reallocation; otherwise, the content of the pagebuffer will be lost.

Note:
  1. The BKSWRST command triggers automatically the reallocation algorithm which operates as described above except copy is done in the same active sector but in the first bank. This operation is atomic, meaning that no modify operation can be issued in the mean time.
  2. At the end of reallocation, there may be a CPU stall for a few milliseconds. Critical code can be placed in TCM, RAM, or CMCC.

As the total size of the whole SEEP exceeds the SmartEEPROM virtual size for a given configuration, there is always free SEEP to replace existing data. In the case all addresses have been written, after sector reallocation the number of free SEEP is given in the following table.

Table 25-8. Minimum number of free SEEP after sector reallocation
SEESTAT.PSZ: SEESTAT.SBLK48163264128256512
0N/AN/AN/AN/AN/AN/AN/AN/A
116161616311573
21616161616472311
31616161616162311
41616161616165527
51616161616161611
61616161616161627
71616161616161643
81616161616161659
91616161616161611
101616161616161616