Home
        Standard software driver for C90FL
         Contents
1.       34  Table 54  Bit allocation for blocks in low address space                                    34  Table 55  Bit allocation for blocks in middle address space                                 34  Table 56  Bit allocation for blocks in high address space                                   35  Table 57  CallBack timings period for SPC564A70                                        36  Table 58  System requirements                                                       37  Table 59  AU MS a pierce eee NG Pa KNANG A ape neti heeled pi Se in 38  Table 60  Document revision history            00  ee tees 40  ky DoclD024388 Rev 3 5 41       Introduction UM1620       1 1    1 2    6 41    Introduction    Document overview    This document is the user manual for the Standard Software Driver  SSD  for single C9OFL  Flash module  The road map for the document is as follows     Section 1 2 shows the features of the driver  Appendix B  System requirements details the  system requirement for the driver development  Appendix D  Document reference lists the  documents referred and terms used in making of this document  Appendix C  Acronyms lists  the acronyms used     Chapter 2 describes the API specifications  In this section there are many sub sections   which describe the different aspects of the driver  Section 2 1 provides a general overview of  the driver     Section 2 2 mentions about the type definitions used for the driver  Section 2 3 mentions the  driver configuration parameters
2.    16  Arguments for ProgramVerify                                                 17  Return values for ProgramVerify                                               18  Troubleshooting for ProgramVerify                                             18  Arguments for CheckSum                                                    19  Return values for CheckSumf                                                19  Troubleshooting for CheckSum                                                20  Arguments for FlashSuspendf                                                 20  Return values for FlashSuspend                                               21  suspendState definitions                                                    21  Suspending state and flag vs  CQOFL status                                     22  Arguments for FlashResume                                                 23  Return values for FlashRresume                                               23  resumeState definitions                                                     23  Arguments for GetLock                                                      24  Return values for GetLock                                                   24  Troubleshooting for GetLock                                                  24  blkLockIndicator definitions  WAIUA 25  bikLockState bit allocation for shadow address space                             25  blkLockState bit allocation for low address space                                 26
3.    k SA life augmented    UM1620  User manual       Standard software driver for C90FL       Introduction    This document is the user manual for the Standard Software Driver  SSD  for single C90  Flash module     The SSD is a set of API   s that enables user application to operate on the Flash module  embedded on a microcontroller  The CIOFL SSD contains a set of functions to  program erase a single C9OFL Flash module     The C90FL Standard Software Driver  SSD  provides the following API s     September 2013    Flashlnit   FlashErase   BlankCheck  FlashProgram  ProgramVerify  CheckSum  FlashSuspend  FlashResume   GetLock   SetLock   FlashArray IntegrityCheck  FlashECCLogicCheck  FactoryMarginReadCheck    DoclD024388 Rev 3    1 41       www st com       Contents UM1620  Contents   1 Introduction  sees oa a a AAA a RARA 6   1 1 Document overview                                            6   1 2 Features                                                     6   2 API specification                                              7   2 1 General overview                                              7   2 2 General type definitions                                         7   2 3 Configuration parameters and macros                              7   24 Callback notification                                            8   2 5 Return codes                                                 9   2 6 Normal mode functions                                        10   2 6 1 FlashInIt  maa mana Bike
4.   blkLockState bit allocation for mid address space                                 26  blkLockState bit allocation for high address space                                26  Arguments for SetLock                                                      27  Return values forSetLock                                                    27  Troubleshooting for SetLock                                                  27  Arguments for FlashArraylintegrityCheck                                        28  Return values for FlashArrayintegrityCheck                                      29  Troubleshooting for FlashArraylintegrityCheck                                    29  Bit allocation for blocks in low address space                                    30  Bit allocation for blocks in middle address space                                 30  Bit Allocation for Blocks in High Address Space                                  30  Arguments for FlashECCLogicCheck                                           31   DoclD024388 Rev 3 ky          UM1620 List of tables  Table 49  Return values for FlashECCLogicCheck                                         31  Table 50  Troubleshooting for FlashECCLogicCheck                                       32  Table 51  Arguments for FactoryMarginReadCheck                                        32  Table 52  Return values for FactoryMarginReadCheck                                     33  Table 53  Troubleshooting for FactoryMarginReadCheck                             
5.   i e  both in main array or both in shadow  row       C90FL ERROR VERIFY       The content in C90FL  and source data  mismatch           Check the correct source and destination  addresses  erase the block and  reprogram data into Flash           Comments    The contents pointed by pFailLoc  pFailData and pFailSource are updated only when there  is a mismatch between the source and destination regions     Assumptions    It assumes that the Flash block is initialized using a    Flashinit   API     18 41    DoclD024388 Rev 3    2       UM1620    API specification       2 6 6    4    CheckSum      Description    This function performs a 32 bit sum over the specified Flash memory range without carry   which provides a rapid method for checking data integrity     Prototype    UINT32 CheckSum  PSSD CONFIG pSSDConfig   UINT32 dest    UINT32 size    UINT32  pSum    void   CallBack   void                    Arguments  Table 21  Arguments for CheckSum    Argument Description Range  SSDConfi Pointer to the SSD The values in this structure are chip dependent   P 9 Configuration Structure  Please refer to Section 2 3 for more details   Destination address to be   Any accessible address aligned on double word  Dest i nae    summed in Flash memory    boundary in either main array or shadow row   so If size is O and the other parameters are all valid   Size Size  in bytes  of the Flash C90FL OK is returned  lts combination with dest  region to check sum  here i  should fall within either ma
6.  18132     4    DoclD024388 Rev 3 39 41       Revision history    UM1620       Revision history    40 41    Table 60  Document revision history             Date Revision Changes  18 Mar 2013 1 Initial release   Removed Table  CallBack timings period for SPC56EL 60x   02 May 2013 2 SPC56XL70xx  Updated Appendix D  Document reference  18 Sep 2013 3 Updated Disclaimer                 DoclD024388 Rev 3    2       UM1620       Please Read Carefully     Information in this document is provided solely in connection with ST products  STMicroelectronics NV and its subsidiaries     ST     reserve the  right to make changes  corrections  modifications or improvements  to this document  and the products and services described herein at any  time  without notice     All ST products are sold pursuant to ST s terms and conditions of sale     Purchasers are solely responsible for the choice  selection and use of the ST products and services described herein  and ST assumes no  liability whatsoever relating to the choice  selection or use of the ST products and services described herein     No license  express or implied  by estoppel or otherwise  to any intellectual property rights is granted under this document  If any part of this  document refers to any third party products or services it shall not be deemed a license grant by ST for the use of such third party products  or services  or any intellectual property contained therein or considered as a warranty covering the use in any manner 
7.  PGM  high     2  program not in progress  MCR PGM  low   but      erase in progress but not suspended     erase on main array is suspended but  program is targeted to shadow row      erase on shadow row is suspended     Check if dest and size are aligned on  double word  64 bit  boundary  Check if  source is aligned on word boundary        C90FL ERROR RANGE    The area specified by  dest and size is out of the  valid C90FL address  range     Check dest and dest size  Both should  fall in the same C90FL address ranges      e  both in main array or both in shadow  row          C90FL ERROR PGOOD    Program operation failed  because this operation  cannot pass PEG check           Repeat the program operation  Check if  the C90FL is invalid or high voltage  applied to C9OFL is unsuitable           16 41    DoclD024388 Rev 3    ky          UM1620    API specification       2 6 5    4    Comments    If the selected main array blocks or the shadow row is locked for programming  those blocks  or the shadow row are not programmed  and  FlashProgram   still returns C90FL OK  User  needs to verify the programmed data with    ProgramVerify   function     It is impossible to program any Flash block or shadow row when a program or erase  operation is already in progress on C9OFL module   FlashProgram   returns   C90FL ERROR BUSY when doing so  However  user can use the    FlashSuspend       function to suspend an on going erase operation on one block to perform a program  operation on anot
8.  Table 27   Table 28   Table 29   Table 30   Table 31   Table 32   Table 33   Table 34   Table 35   Table 36   Table 37   Table 38   Table 39   Table 40   Table 41   Table 42   Table 43   Table 44   Table 45   Table 46   Table 47   Table 48     4 41    Type CeOTINIMONS AA AA 7  SSD configuration structure field definition                                       7   EW muii a ao RC BC CA AEA a   Ca AL A   Sa SC AS aaa 9  Arguments for Flashinit                                                      10  Return values for Flashlnit                nee 10  Arguments for FlashErase             ee tenes 11  Return values for FlashErasef                                                 12  Troubleshooting for FlashErase                                               12  Bit allocation for blocks in low address space                                    13  Bit allocation for blocks in middle address space                                 13  Bit allocation for blocks in high address space                                   13  Arguments for BlankCheck                                                   14  Return values for BlankCheck                                                 14  Troubleshooting for BlankCheck                                               15  Arguments for FlashProgram                                                 15  Return values for FlashProgram                                               16  Troubleshooting for FlashProgramf                                         
9.  Wa eG Ae Re Re ER AS Wafika ORA wa 10   2 6 2 FlaShErase      ascetics ftp aise ce AAA Pein KA KA 11   2 6 3 Blank Ghe6ki  ir sair a ceva eee a ae ae oud a ae reed ead 13   2 6 4 FlasnPrograim    reia esc ated Kab NO a ain ey 15   2 6 5 ProgramVerify   IA WAWA Aa IA aa 17   2 6 6 CAS UM ia kaa kaa Kaa aa 19   2 6 7 FlashSuspend    sisi kk a a CAD RC keke PANG Ree Dae ee eae 20   2 6 8 FlashResume   WAA tee 22   2 6 9 GELOK  a aaah at 24   2610 GELOK ci a aid LAND lavas PAA 26   2 7 User test mode functions                                       28   2 7 1 FlashArraylntegrityCheck                                      28   2 7 2 FlashECCLogicCheck   ii IIIA 31   2 7 3 FactoryMarginReadCheck                                     32   Appendix A CallBack timings                                          36   Appendix B System requirements                                      37   Appendix    Acronyms                             ununanzunanzuna   38   Appendix D Document reference                                       39    2 41    DoclD024388 Rev 3 ky       UM1620 Contents       Revision DISTO    iii rt a AKIRA a KG AK AA ee 40    4    DoclD024388 Rev 3 3 41       List of tables UM1620       List of tables    Table 1   Table 2   Table 3   Table 4   Table 5   Table 6   Table 7   Table 8   Table 9     Table 10   Table 11   Table 12   Table 13   Table 14   Table 15   Table 16   Table 17   Table 18   Table 19   Table 20   Table 21   Table 22   Table 23   Table 24   Table 25   Table 26  
10.  and configuration macros respectively  Section 2 4 and  Section 2 5 describe the CallBack notifications  and return codes used for the driver   Section 2 6 and Section 2 7 provide the detailed description of normal mode and special  mode standard software Flash Driver APIs    respectively  Appendix A  CallBack timings  provides the performance indexes     Features    The C90FL SSD provides the following features     e Two sets of driver binaries built on Power Architecture instruction set technology and  Variable Length Encoding  VLE  instruction set     e  Drivers released in binary c array format to provide compiler independent support for  non debug mode embedded applications     e Drivers released in s record format to provide compiler independent support for  debugmode JTAG programming tools     e Each driver function is independent of each other so the end user can choose the  function subset to meet their particular needs     e Support page wise programming for fast programming   e Position independent and ROM able   e Ready to use demos illustrating the usage of the driver  e Concurrency support via callback    4    DoclD024388 Rev 3       UM1620    API specification       2    2 1    2 2    2 3    4    API specification    General overview    The C90FL SSD has APIs to handle the erase  program  erase verify and program verify  operations on the Flash  Apart from these  it also provides the feature for locking specific  blocks and calculating Check sum  This SSD also
11.  or service described herein and shall not create or extend in any manner whatsoever  any  liability of ST     ST and the ST logo are trademarks or registered trademarks of ST in various countries   Information in this document supersedes and replaces all information previously supplied   The ST logo is a registered trademark of STMicroelectronics  All other names are the property of their respective owners       2013 STMicroelectronics   All rights reserved    STMicroelectronics group of companies    Australia   Belgium   Brazil   Canada   China   Czech Republic   Finland   France   Germany   Hong Kong   India   Israel   Italy   Japan    Malaysia   Malta   Morocco   Philippines   Singapore   Spain   Sweden   Switzerland   United Kingdom   United States of America    www st com    4    DoclD024388 Rev 3 41 41       
12.  provides 3 user test APIs for checking the  Array Integrity and the ECC Logic     General type definitions    Table 1  Type definitions                                        Derived type Size C language type description  BOOL 8 bits unsigned char  INT8 8 bits signed char  VINT8 8 bits volatile signed char  UINT8 8 bits unsigned char  VUINT8 8 bits volatile unsigned char  INT16 16 bits signed short  VINT16 16 bits volatile signed short  UINT16 16 bits unsigned short  VUINT16 16 bits volatile unsigned short  INT32 32 bits signed long  VINT32 32 bits volatile signed long  UINT32 32 bits unsigned long  VUINT32 32 bits volatile unsigned long                Configuration parameters and macros    The configuration parameter which is used for SSD operations is explained in this section   The configuration parameters are handled as structure  The user should correctly initialize  the fields including c90flRegBase  mainArrayBase  shadowRowBase  shadowRowSize   pageSize and BDMEnable before passing the structure to SSD functions  The pointer to  CallBack has to be initialized either to a null pointer or a valid CallBack function pointer     Table 2  SSD configuration structure field definition                            Parameter name Type Parameter description  c90flRegBase UINT32 The base address of C9OFL and BIU control registers   mainArrayBase UINT32 The base address of Flash main array   mainArraySize UINT32 The size of Flash main array in byte   DoclD024388 Rev 3 7 41       API
13.  specification UM1620       Table 2  SSD configuration structure field definition  continued                          Parameter name Type Parameter description  shadowRowBase UINT32 The base address of shadow row  shadowRowSize UINT32 The size of shadow row in byte   shadowRowSize UINT32 Number of blocks of the large address space  128K or 256K    lowBlockNum UINT32 Block number of the low address space   midBlockNum UINT32 Block number of the mid address space   highBlockNum UINT32 Block number of the high address space   pageSize UINT32 The page size of the C9OFL Flash  BDMEnable UINT32 ren state of background debug mode  enable                   The type definition for the structure is given below   typedef struct _ssd_config       UINT32 c90f1RegBase    UINT32 mainArrayBase    UINT32 mainArraySize    UINT32 shadowRowBase    UINT32 shadowRowSize    UINT32 lowBlockNum    UINT32 midBlockNum    UINT32 highBlockNum    UINT32 pageSize    UINT32 BDMEnable      SSD CONFIG   PSSD_CONFIG    Note  The macro value COMPILER_SELECT should be set to    CODE_WARRIOR   if CodeWarrior compiler is used for compiling  DIAB_COMPILER   if Diab compiler is used for compiling       2 4 Callback notification    The Standard Software Driver facilitates the user to supply a pointer to    CallBack    function  so that time critical events can be serviced during C9OFL Standard Software driver  operations     Servicing watchdog timers is one such time critical event  If it is not necessary to provide 
14. 2  Arguments for BlankCheck    Argument Description Range  SSDConfi Pointer to the SSD The values in this structure are chip dependent   P 9 Configuration Structure  Please refer to Section 2 3 for more details   Destination address to be Any accessible address aligned on double word  dest i a  checked  boundary in main array or shadow row  If size   O  the return value is C9OFL OK   Size  in bytes  of the Flash i i   TA    size y It should be multiple of 8 and its combination with    14 41    region to check        dest should fall in either main array or shadow row        pFailAddress non blank Flash location in the    Protos tie aoe est Only valid when this function returns      i C90FL ERROR NOT  BLANK   checking region        Return the content ol the MA Only valid when this function returns                         pFailData non blank Flash location in the C90FL ERROR NOT BLANK   checking region   CallBack Address of void callback Any addressable void function address  To disable  function  it use NULL_CALLBACK macro   Return values  Table 13  Return values for BlankCheck    Type Description Possible values  C90FL_OK    C90FL ERROR ALIGNMENT  UINT32 Successful completion or error value  C90FL ERROR RANGE  C90FL ERROR NOT BLANK                   4    DoclD024388 Rev 3       UM1620 API specification       Troubleshooting    Table 14  Troubleshooting for BlankCheck            Returned error bits Description Solution  The desi size are not Check if dest and size are aligned 
15. 2 7 1    28 41    Assumptions    It assumes that the Flash block is initialized using a    Flashinit   API     User test mode functions    FlashArrayIntegrityCheck      Description    This function checks the array integrity of the Flash  The user specified address sequence is  used for array integrity reads and the operation is done on the specified blocks  The MISR  values calculated by the hardware is compared to the values passed by the user  if they are  not the same  then an error code is returned     Prototype    UINT32 FlashArrayIntegrityCheck  PSSD CONFIG pSSDConfig   UINT32 lowEnabledBlocks    UINT32 midEnabledBlocks    UINT32 highEnabledBlocks    UINT8 addrSeq    MISR misrValue    void   CallBack   void             Arguments  Table 42  Arguments for FlashArrayIntegrityCheck    Argument Description Range  pSSDConfig Pointer to the SSD The values in this structure are chip dependent     Configuration Structure    Please refer to Section 2 3 for more details     Bit mapped value  Select the block in the low  address space whose array integrity is to be  evaluated by setting 1 to the appropriate bit of  lowEnabledBlocks  If there is not any block to be  evaluated in the low address space   lowEnabledBlocks must be set to 0     To select the array  lowEnabledBlocks _   blocks in low address  space for erasing     Bit mapped value  Select the block in the middle  address space whose array integrity is to be  evaluated by setting 1 to the appropriate bit of  midEnabledBlo
16. Callback time period for    CheckSum    is measured with CALLBACK_CS  CallBack function    period for checksum     Callback time period for Program Verify    is measured with CALLBACK PV  CallBack    function period for program verify     Callback time period for    BlankCheck      is measured with CALLBACK BC  CallBack    function period for program verify     DoclD024388 Rev 3    2       UM1620    System requirements       AppendixB System requirements    4    The C90FL SSD is designed to support a single C9OFL Flash module embedded on  microcontrollers  Before using this SSD on a different derivative microcontroller  user has to  provide the information specific to the derivative through a configuration structure     Table 58  System requirements                   Tool name Description Version number  CodeWarrior IDE Development tool 2 7  Diab PowerPC compiler Compiler 5 7 0 0  GreenHills Development tool 6 1 4  P E    Debugger                DoclD024388 Rev 3    37 41       Acronyms    UM1620       Appendix C Acronyms    38 41    Table 59  Acronyms       Abbreviation    Complete name                   API Application Programming Interface  BIU Bus Interface Unit   ECC Error Correction Code   EVB Evaluation Board   RWW Read While Write   SSD Standard Software Driver             DoclD024388 Rev 3    2       UM1620 Document reference       Appendix D Document reference    1  SPC564A70B4  SPC564A70L7 32 bit MCU family built on the embedded Power  Architecture   RM0068  Doc ID
17. EnabledBlocks    UINT32 midEnabledBlocks    UINT32 highEnabledBlocks    UINT8 marginLevel    MISR misrValue    void   CallBack   void          Arguments  Table 51  Arguments for FactoryMarginReadCheck    Argument Description Range  pSSDConfig Pointer to the SSD The values in this structure are chip dependent     Configuration Structure    Please refer to Section 2 3 for more details        Bit mapped value  Select the block in the low  address space whose array integrity is to be  evaluated by setting 1 to the appropriate bit of  lowEnabledBlocks  If there is not any block to be  evaluated in the low address space   lowEnabledBlocks must be set to 0     To select the array blocks  lowEnabledBlocks  in low address space for  erasing                    4    DoclD024388 Rev 3       UM1620    API specification       4    Table 51  Arguments for FactoryMarginReadCheck    continued                          function pointer        Argument Description Range  Bit mapped value  Select the block in the middle  To select the array blocks address space whose array integrity is to be i  midEnabledBlocks  in mid address space for evaluated by ooo  rasin midEnabledBlocks  If there is not any block to be  9  evaluated in the middle address space   midEnabledBlocks must be set to 0   Bit mapped value  Select the block in the high  To select the array blocks address space whose array integrity is to be    highEnabledBlocks  in high address space for    valuatedby Sehing 1 to the appropriate DI
18. LA  7 highEnabledBlocks  If there is not any block to be  erasing    A  evaluated in the high address space   highEnabledBlocks must be set to 0   To determine the margin   Selects the margin level that is being checked   i level to be used during Margin can be checked to an erased level  marginLevel      factory margin read  marginLevel 1  or to a programmed level  checks   marginLevel  0    A structure variable  misrVal te ied the The individual MISR words can range from  died   at 0x00000000   OXFFFFFFFF  user using the offline  MISR generation tool   Address of void call back   Any addressable void function address  To disable  CallBack       it use NULL CALLBACK macro        Return values    Table 52  Return values for FactoryMarginReadCheck         Type    UINT32          Description    Successful completion or error value     Possible values    C90FL OK  C90FL ERROR FMR MISMATCH  C90FL ERROR FMR NO BLOCK             Troubleshooting    The trouble shooting given here comprises of hardware errors and input parameter error     DoclD024388 Rev 3    33 41       API specification UM1620       Table 53  Troubleshooting for FactoryMarginReadCheck         Returned error bits Possible causes Solution  The MISR value Re calculate the MISR values  calculated by the user is   using the correct Data and  C90FL ERROR FMR MISMATCH   incorrect  address        The MISR calculated by    AWA Hardware Error   the Hardware is incorrect        Enable any of the blocks using    None or Ie Blo
19. S SUS PGM SUS 7 program operation is in Only read is valid on both main             suspended state        array space and shadow row           The table below lists the Suspend Flag values returned against the Suspend State and the    Flash block status     Table 27  Suspending state and flag vs  C90FL status                         suspendState EHV   ERS   ESUS   PGM   PSUS   PEAS suspendFlag  NO_OPERATION Xx 0 X 0 X X FALSE  PGM WRITE 0 0 X 1 0 X FALSE  ERS WRITE 0 1 0 0 X X FALSE  ESUS PGM WRITE 0 1 1 1 0 X FALSE  1 0 X 1 0 X TRUE  PGM SUS  X 0 X 1 1 X FALSE  1 1 0 0 X 0 TRUE  ERS SUS  X 1 1 0 X 0 FALSE  1 1 0 0 X 1 TRUE  SHADOW ERS SUS  X 1 1 0 X 1 FALSE  1 1 1 1 0 X TRUE  ERS SUS PGM SUS  X 1 1 1 1 FALSE                                        The values of EHV  ERS  ESUS  PGM  PSUS and PEAS represent the C90FL status at the    entry of FlashSuspend     0  Logic zero  1  Logic one  X  Do not care     Assumptions    It assumes that the Flash block is initialized using a    Flashinit   API     FlashResume      Description    This function checks if there is any suspended erase or program operation on the C9OFL  module  and resumes the suspended operation if there is any     DoclD024388 Rev 3    2       UM1620    API specification       4    Prototype    UINT32 FlashResume  PSSD CONFIG pSSDConfig        UINT8  resumeState          Arguments  Table 28  Arguments for FlashResume    Argument Description Range  SSDConfi Pointer to the SSD The values in this structure are chip d
20. able 55  Bit allocation for blocks in middle address space    reserved                                  MSB LSB  bit 31   bit 4 bit 3 bit 2 bit 1 bit 0  reserved Mo reserved   reserved   reserved   block 1 block 0  34 41 DoclD024388 Rev 3 ky       API specification       Table 56  Bit allocation for blocks in high address space         MSB    LSB         bit 31    reserved          bit 6    reserved       bit 5  block 5       bit 4  block 4          bit 1    Block 1       bit 0  Block 0       If no blocks are enabled the C90FL ERROR FMR NO BLOCK error code is returned     The MISR values are calculated for the enabled blocks using the logical sequence  If the  MISR values calculated by the hardware is not the same as the values passed to this API by  the user then the API returns the error code C90FL ERROR FMR MISMATCH     Assumptions    It assumes that the Flash block is initialized using a    Flashinit      API     4    DoclD024388 Rev 3 35 41       CallBack timings    UM1620       Appendix A CallBack timings    Note     36 41    Table 57  CallBack timings period for SPC564A70                            API Name ane wet  System clock   40 MHz  FlashProgram    size   0x1000  1 7  ProgramVerify    size   0x1000  CALLBACK_PV   70  99 3  FlashErase    low block 0  1 7  BlankCheck    size   LOW_BLOCKO_SIZE  CALLBACK_BC   80  101 3  CheckSum  size   0x1000  CALLBACK_CS   120  103 25  FlashArrayIntegrityCheck  low block 0  1 7  FactoryMarginReadCheck  low block 0  1 7             
21. ce buffer address    This address must reside on word boundary   DocID024388 Rev 3 17 41          API specification    UM1620       Table 18  Arguments for ProgramVerify    continued        Argument Description    pFailAddress Flash     Return first failing address in    Returns first mismatch data    Range    Only valid when the function returns  C90FL ERROR VERIFY     Only valid when this function returns                function pointer     Return values       pFailData in Flash  C90FL ERROR VERIFY   Returns first mismatch data   Only valid when this function returns  pFailSource in buffer  C90FL ERROR VERIFY   CallBack Address of void call back Any addressable void function address  To disable it    use NULL_CALLBACK macro     Table 19  Return values for ProgramVerify            Type Description    UINT32          Successful completion or error value     Possible values       C90FL_OK   C90FL ERROR ALIGNMENT  C90FL ERROR RANGE  C90FL ERROR VERIFY             Troubleshooting    Table 20  Troubleshooting for ProgramVerify         Returned error bits    Description    This error indicates that    C90FL ERROR ALIGNMENT   desi size source isn t    properly aligned    Solution    Check if dest and size are aligned on  double word  64 bit  boundary  Check if  source is aligned on word boundary       C90FL ERROR RANGE    The area specified by  dest and size is out of  the valid C90FL address  range     Check dest and dest   size  both should  fall in the same C90FL address ranges 
22. cks  If there is not any block to be  evaluated in the middle address space   midEnabledBlocks must be set to 0     To select the array  midEnabledBlocks   blocks in mid address  space for erasing        Bit mapped value  Select the block in the high  address space whose array integrity is to be  evaluated by setting 1 to the appropriate bit of  highEnabledBlocks  If there is not any block to be  evaluated in the high address space   highEnableaBlocks must be set to 0     To select the array  highEnabledBlocks   blocks in high address  space for erasing                    4    DoclD024388 Rev 3       UM1620 API specification       Table 42  Arguments for FlashArrayIntegrityCheck    continued        Argument Description Range    The default sequence  addrSeq   0  is meant to   replicate sequences normal    user    code follows      and thoroughly check the read propagation paths    To determine the This seguence is proprietary    address seguence to be E ae     The alternative sequence  addrSeq   1  is just   used during array   i       logically seguential    integrity checks       lt should be noted that the time to run a seguential   sequence is significantly shorter than the time to   run the proprietary sequence     addrSeq       A structure variable  containing the MISR  misrValue values calculated by the  user using the off line  MISR generation tool     The individual MISR words can range from  0x00000000   OXFFFFFFFF       Address of void call back   Any addressable v
23. cks arg variables lowEnabledBlocks  C90FL ERROR FMR NO BLOCK enabled for Factory midEnabledBlocks and    Margin Read Check highEnabledBlock                       Comments    The inputs lowEnabledBlocks  midEnabledBlocks and highEnabledBlocks are bit mapped  arguments that are used to select the blocks to be evaluated in the Low Mid High address  spaces of main array  The selection of the blocks of the main array is determined by  setting clearing the corresponding bit in lowEnabledBlocks  midEnabledBlocks or  highEnabledBlocks     The bit allocations for blocks in one address space are  bit O is assigned to block O  bit 1 to  block 1  etc  The following diagrams show the formats of lowEnabledBlocks   midEnabledBlocks and highEnabledBlocks for the C9OFL module     For low address space valid bits are from bit 0 to bit  lowBlockNum     1   In which   lowBlockNum is the number of low blocks returned from FlashInit       For middle address space valid bits are from bit O and bit  midBlockNum     1   In which   midBlockNum is the number of middle blocks returned from FlashInit       For high address space valid bits are from bit O to bit  highBlockNum     1   In which   highBlockNum is the number of high blocks returned from Flashlnit       For example  below are bit allocations for blocks in Low Mid High Address Space of          SPC564A70   Table 54  Bit allocation for blocks in low address space  MSB LSB  bit 31 bit 10 bit 9 bit 8 bit 1 bit 0           block 0    COCO COEN    T
24. clearing the corresponding bit in lowEnabledBlocks  midEnabledBlocks or  highEnabledBlocks     The bit allocations for blocks in one address space are  bit O is assigned to block O  bit 1 to  block 1  etc  The following diagrams show the formats of lowEnabledBlocks   midEnabledBlocks and highEnabledBlocks for the CIOFL module     For low address space valid bits are from bit O to bit  lowBlockNum   1   In which   lowBlockNum is the number of low blocks returned from Flashlnit       For middle address space valid bits are from bit O and bit  midBlockNum   1   In which   midBlockNum is the number of middle blocks returned from FlashlInit       For high address space valid bits are from bit O to bit  highBlockNum     1   In which   highBlockNum is the number of high blocks returned from FlashlInit       4    DoclD024388 Rev 3                                                                                                             UM1620 API specification  For example  below are bit allocations for blocks in Low Mid High Address Space of  SPC564A70    Table 9  Bit allocation for blocks in low address space  MSB LSB  bit 31 bit 10 bit 9 bit 8 PEE bit 1 bit 0  reserved reserved block 9 block 8 block 1 block 0  Table 10  Bit allocation for blocks in middle address space  MSB LSB  bit 31 Sue bit 4 bit 3 bit 2 bit 1 bit 0  reserved reserved   reserved   reserved   block 1 block 0  Table 11  Bit allocation for blocks in high address space  MSB LSB  bit 31 uae bit 6 bit 5 bit 4 sag bi
25. dependent   p 9 Configuration Structure    Please refer to Section 2 3 for more details   TRUE  the shadow row is erased  The  lowEnabledBlocks  midEnabledBlocks and  Indicate either the main   highEnabledBlocks are ignored   shadowFlag array or the shadow row   FALSE  The main array is erased  Which blocks are  to be erased  erased in low  mid and high address spaces are  specified by lowEnabledBlocks  midEnabledBlocks  and highEnabledBlocks respectively   Bit mapped value  Select the block in the low  To select the array address space to be erased by setting 1 to the  lowEnabledBlocks _   blocks in low address appropriate bit of lowEnabledBlocks  If there is not  space for erasing  any block to be erased in the low address space   lowEnabledBlocks must be set to 0   Bit mapped value  Select the block in the middle  To select the array address space to be erased by setting 1 to the  midEnabledBlocks  blocks in mid address   appropriate bit of midEnabledBlocks  If there is not  space for erasing  any block to be erased in the middle address space   midEnabledBlocks must be set to 0   Bit mapped value  Select the block in the high  To select the array address space to be erased by setting 1 to the  highEnabledBlocks  blocks in high address   appropriate bit of highEnabledBlocks  If there is not  space for erasing  any block to be erased in the high address space   highEnableaBlocks must be set to 0   CallBack Address of void call Any addressable void function address  To disab
26. ependent   p 9 Configuration Structure  Please refer to Section 2 3 for more details        Indicate the resume state of  resumeState C90FL module after the All return values are listed in Table 29   function being called                    Return values    Table 29  Return values for FlashResume         Type Description Possible values                UINT32 Successful completion  C90FL OK       Troubleshooting    None     Comments    This function resumes one operation if there is any operation is suspended  For instance  if  a program operation is in suspended state  it is resumed  If an erase operation is in  suspended state  it is resumed too  If an erase suspended program operation is in  suspended state  the program operation is resumed prior to resuming the erase operation  It  is better to call this function based on suspendF lag returned from    FlashSupend          Following table defines and describes various resume states and associated resume codes     Table 30  resumeState definitions             Code name Value Description  RES NOTHING 0 No program erase operation to be resumed  RES PGM 1 A program operation is resumed  RES ERS 2 A erase operation is resumed  RES ERS PGM 3 A suspended erase suspended program operation is  resumed                   Assumptions    It assumes that the Flash block is initialized using a    Flashinit   API     DoclD024388 Rev 3 23 41       API specification UM1620       2 6 9 GetLock      Description    This function checks the bloc
27. eserved   reserved   reserved   block 1 block 0       Table 38  blkLockState bit allocation for high address space    MSB LSB            bit 31 po bit 6 bit 5 bit 4 aa bit 1 bit 0    reserved o   reserved block 5 block 4   block 1 block 0                            Assumptions    It assumes that the Flash block is initialized using a    Flashinit   API     2 6 10 SetLock      Description    This function sets the block lock state for Shadow Low Middle High address space on the  C90FL module to protect them from program erase  The API provides password to enable  block lock register writes when is needed and write the block lock value to block lock  register for the requested address space     Prototype    UINT32 SetLock  PSSD CONFIG pSSDConfig   UINT8 blkLockIndicator    UINT32 blkLockState    UINT32 password          2    26 41 DoclD024388 Rev 3             UM1620 API specification  Arguments  Table 39  Arguments for SetLock    Argument Description Range  pSSDConfig Pointer to the SSD The values in this structure are chip dependent     Configuration Structure     Please refer to Section 2 3 for more details        blkLockIndicator    Indicating the address  space and the protection  level of the block lock  register to be read     Refer to Table 34 for valid codes for this parameter        The block locks to be set to    Bit mapped value indicating the lock status of the  specified protection level and address space              PIkLOCk gale the speciiied adore s 1  The bloc
28. her block  The user has begun an erase operation on the main array or  shadow row  it may be suspended to program on both main array and shadow row     It is unsafe to read the data from the Flash partitions having one or more blocks being  programmed when    FlashProgram      is running  Otherwise  it causes a Read While Write  error     Assumptions    It assumes that the Flash block is initialized using a    Flashinit   API     ProgramVerify      Description    This function checks if a programmed Flash range matches the corresponding source data  buffer  In case of mismatch  the failed address  destination value and source value are  saved and relevant error code is returned     Prototype    UINT32 ProgramVerify  PSSD CONFIG pSSDConfig   UINT32 dest    UINT32 size    UINT32 source    UINT32  pFailAddress    UINT64  pFailData    UINT64  pFailSource    void   CallBack   void                            Arguments  Table 18  Arguments for ProgramVerify    Argument Description Range  SSDConfi Pointer to the SSD The values in this structure are chip dependent    P 9 Configuration Structure  Please refer to Section 2 3 for more details    Destination address to be Any accessible address aligned on double word  Dest ae i i   verified in Flash memory  boundary in main array or shadow row   Size  in byte  of the Flash If size   0  CIOFL_OK is returned  Its combination   Size nG yte  with dest should fall within either main array or  region to verify    shadow row   Source Verify sour
29. hould be used in off line  offline ECC Calculator  ECC calculator and Flash ECC logic check API                 Return values    Table 49  Return values for FlashECCLogicCheck         C90FL OK    UINT32 Successful completion or error value  C90FL ERROR ECC LOGIC       Troubleshooting    The trouble shooting given here comprises of hardware errors and input parameter error     DoclD024388 Rev 3 31 41       API specification UM1620       2 7 3    32 41    Table 50  Troubleshooting for FlashECCLogicCheck      Returned error bits Possible causes Solution          The ECC value calculated by   Re calculate the ECC values  C90FL ERROR ECC LOGIC  the user is incorrect  using the correct Data     Hardware Failure  Hardware error                    Comments    Depending on the errBits value  a single or double bit faults are simulated  When a Flash  read is done  if the simulated error has not occurred  then the API returns the error code  C90FL ERROR ECC LOGIC     Assumptions    It assumes that the Flash block is initialized using a    Flashinit   API     FactoryMarginReadCheck      Description    This function checks the Factory Margin reads of the Flash  The user specified margin level  is used for reads and the operation is done on the specified blocks  The MISR values  calculated by the hardware is compared to the values passed by the user  if they are not the  same  then an error code is returned     Prototype    UINT32 FactoryMarginReadCheck  PSSD CONFIG pSSDConfig   UINT32 low
30. in array or shadow row   Sim Returns the sunm vali   0x00000000   OxFFFFFFFF  Note that this value is  p   only valid when the function returns C90FL OK   CallBack Address of void call back   Any addressable void function address  To disable it  function pointer  use NULL_CALLBACK macro                    Return values    Table 22  Return values for CheckSum         Type Description Possible values  C90FL_OK  UINT32 Successful completion or error value  C90FL_ERROR_ALIGNMENT  C90FL_ERROR_RANGE                   DoclD024388 Rev 3 19 41       API specification UM1620       2 6 7    20 41    Troubleshooting    Table 23  Troubleshooting for CheckSum      Returned error bits Description Solution       This error indicates that   Check if dest and size are aligned on  C90FL ERROR ALIGNMENT   dest size isn t properly 8   double word  64 bit  boundary  Check if  aligned  source is aligned on word boundary     The area specified by Check dest and destz size  both should  dest and size is out of fall in the same C90FL address ranges   the valid C90FL address   i e  both in main array or both in shadow  range  row     C90FL ERROR RANGE                   Comments    None     Assumptions  It assumes that the Flash block is initialized using a    Flashinit   API     FlashSuspend      Description    This function checks if there is any high voltage operation  erase or program  in progress on  the C9OFL module and if the operation can be suspended  This function suspends the  ongoing operati
31. ious   C90FL_ERROR PASSWORD 0x00000A00 The password provided cannot unlock the  block lock register for register writes  In  FlashArrayIntegrityCheck   the MISR   C90FL_ERROR_AIC_MISMATCH 0x00000B00      values generated by the hardware do not  match the values passed by the user    C90FL ERROR AIC NO BLOCK loxooooocoo      FlashArrayintegrityCheck   no blocks  have been enabled for Array Integrity check  In    FactoryMarginReadCheck   the MISR   C90FL ERROR FMR MISMATCH   0x00000D00  values generated by the hardware do not  match the values passed by the user    C90FL ERROR FMR NO BLOCK  ox00000E00     FactoryMarginReadCheck   no blocks  have been enabled for Array Integrity check   C90FL_ERROR ECC LOGIC 0x00000F00 In    FlashECCLogicCheck   the simulated             ECC error has not occurred           DoclD024388 Rev 3    9 41       API specification UM1620       2 6    2 6 1    10 41    Normal mode functions    Flashinit      Description    This function reads the Flash configuration information from the Flash control registers and  initialize parameters in SSD configuration structure  FlashInit    must be called prior to any  other Flash operations        Prototype  UINT32 FlashInit  PSSD CONFIG pSSDConfig     Arguments  Table 4  Arguments for Flashlnit    Argument Description Range       SSDConfi Pointer to the SSD The values in this structure are chip dependent   P 9 Configuration Structure  Please refer to Section 2 3 for more details     Return values    Table 5  Ret
32. k is locked from program erase   space and protection level  I  0  The block is ready for program erase  Correct passwords for block lock registers are      OxA1A1 1111 for Low Mid Address Space Block  A password is required to a  password enable the block lock Locking Register  OKC3C3 3333 for Secondary    register for register write        Low Mid Address Space Block Locking Register   and 0xB2B2_2222 for High Address Space Block  Select Register           Return values    Table 40  Return values for SetLock         Type    UINT32          Description    Successful completion or error value     Possible values    C90FL OK  C90FL ERROR LOCK INDICATOR  C90FL ERROR PASSWORD                Troubleshooting    The troubleshooting mentioned below comprises of hardware errors due to both P Flash  block erase verify and P Flash section erase verify command  Apart from these the input  based error handling is also mentioned     Table 41  Troubleshooting for SetLock         Returned error bits    C90FL ERROR LOCK INDICATOR       Possible causes    The input blkLockIndicator  is invalid     Solution    Set this argument to correct  value listed in Table 34           C90FL ERROR PASSWORD       The given password cannot  enable the block lock  register for register writes     Pass in a correct password              Comments    The bit field allocation for b kLockState is same as that in    GetLock   function     4    DoclD024388 Rev 3    27 41       API specification UM1620       2 7    
33. k lock  status of the specified locking level and address space  A main array block or shadow row is  locked from program erase if its corresponding bit is set     The indicated address space determines the valid bits of blkLockState  The following  diagrams show the block bitmap definitions of bikLockState for shadow Low Mid High  address spaces     For low address space valid bits are from bit O to bit  lowBlockNum   1   In which   lowBlockNum is the number of low blocks returned from Flashlnit       For middle address space valid bits are from bit O and bit  midBlockNum     1   In which   midBlockNum is the number of middle blocks returned from Flashlnit       For high address space valid bits are from bit O to bit  highBlockNum     1   In which   highBlockNum is the number of high blocks returned from Flashlnit       For shadow row valid bit is bit 0   For example  below are bit allocations for blocks in Low Mid High Address Space of  SPC564A70   Table 35  blkLockState bit allocation for shadow address space  MSB LSB       bit 31 bit 1 bit 0       DoclD024388 Rev 3 25 41       API specification UM1620       Table 36  blkLockState bit allocation for low address space    MSB LSB            bit 31 ang bit 10 bit 9 bit 8 a bit 1 bit 0    reserved Ko reserved   block9 block 8 saa block 1 block 0                            Table 37  blkLockState bit allocation for mid address space                                  MSB LSB  bit 31 oe bit 4 bit 3 bit 2 bit 1 bit 0  reserved PRE r
34. k locking status of Shadow Low Middle High address spaces in  the C9OFL module     Prototype    UINT32 GetLock  PSSD CONFIG pSSDConfig   UINT8 blkLockIndicator    BOOL  blkLockEnabled    UINT32  blkLockState            Arguments  Table 31  Arguments for GetLock    Argument Description Range  SSDConfi Pointer to the SSD The values in this structure are chip dependent   p 9 Configuration Structure  Please refer to Section 2 3 for more details     Indicating the address space  and the block locking level   blkLocklndicator   which determines the address  space block locking register  to be checked     Refer to Table 34 for valid values for this  parameter        TRUE   The address space block locking register  is enabled for register writes    FALSE   The address space block locking  register is disabled for register writes     Indicate whether the address  blkLockEnabled   space block locking register is  enabled for register writes       Returns the blocks    locking Bit mapped value indicating the locking status of                bikLocks status of indicated locking the specified locking level and address space   oessiale level in the given address 1  The block is locked from program erase   space 0  The block is ready for program erase       Return values    Table 32  Return values for GetLock         Type Description Possible values    C90FL_OK    UINT32 Successful completion or error value  C90FL_ERROR LOCK INDICATOR                   Troubleshooting    Table 33  Troublesh
35. le it  back function pointer  use NULL_CALLBACK macro   Ly  DoclD024388 Rev 3 11 44       API specification UM1620       12 41    Return values    Table 7  Return values for FlashErase         C90FL OK  UINT32 Successful completion or error value  C90FL ERROR BUSY  C90FL ERROR EGOOD       Troubleshooting    Table 8  Troubleshooting for FlashErase         Error codes Possible causes Solution    Wait until all previous  program erase operations on the  Flash module finish   Possible cases that erase cannot  start are       erase in progress    FLASH MCR ERS is high        program in progress    FLASH MCR PGM is high    Check if the C90FL is available  and high voltage is applied to  C90FL  Then try to do the erase  operation again     New erase operation cannot be  performed because there is  program erase sequence in  progress on the Flash module     C90FL ERROR BUSY       C90FL ERROR EGOOD   Erase operation failed                    Comments    When shadowFlag is set to FALSE  the    FlashErase      function erases the blocks in the main  array  It is capable of erasing any combination of blocks in the low  mid and high address  spaces in one operation  If shadowFlag is TRUE  this function erases the shadow row     The inputs lowEnabledBlocks  midEnabledBlocks and highEnabledBlocks are bit mapped  arguments that are used to select the blocks to be erased in the Low Mid High address  spaces of main array  The selection of the blocks of the main array is determined by  setting 
36. nabled blocks using the corresponding sequence  If the MISR values calculated by the  hardware is not the same as the values passed to this API by the user then the API returns  the error code C9OFL_ERROR_AIC_MISMATCH     Assumptions    It assumes that the Flash block is initialized using a    Flashinit   API     DoclD024388 Rev 3    2       UM1620    API specification       2 7 2    4    FlashECCLogicCheck      Description    This function checks the ECC logic of the Flash  The API simulates a single or double bit  fault depending on the user input  If the simulated ECC error is not detected  then the error  code CIOFL_ERROR_ECC_LOGIC is returned     Prototype    UINT32 FlashECCCLogicCheck  PSSD CONFIG pSSDConfig   UINT64 dataVal   UINT64 errBits        UINT32 eccValue              Arguments  Table 48  Arguments for FlashECCLogicCheck    Argument Description Range  SSDConfi Pointer to the SSD The values in this structure are chip dependent   P 9 Configuration Structure  Please refer to Section 2 3 for more details   The 64 bits of data for which  the ECC is calculated  The  dataValue bits of dataValue are flipped   Any 64 bit value   to generate single or double  bit faults   Is a 64 bit mask of the bits  errBits at which the user intends to   Any 64 bit value  except zero   inject error   It s a 32 bit value which has   This is a corresponding ECC value for the data  Ea to be passed by user  This   value passed by the user   is calculated ny using an Note  Same data words s
37. oid function address  To disable    CallBack function pointer  ituse NULL_CALLBACK macro                    Return values    Table 43  Return values for FlashArrayIntegrityCheck         Type Description Possible values    C90FL_OK  Successful completion or error value  C90FL_ERROR_AIC_MISMATCH    C90FL_ERROR_AIC_NO_BLOCK          Troubleshooting    The trouble shooting given here comprises of hardware errors and input parameter error     Table 44  Troubleshooting for FlashArrayIntegrityCheck         Returned error bits Possible causes Solution    The MISR value calculated Re calculate the MISR values  by the user is incorrect using the correct Data and  C90FL_ERROR_AIC_MISMATCH addrSeq     The MISR calculated by the  Hardware is incorrect        Hardware Error     Enable any of the blocks using  variables lowEnableaBlocks   midEnableaBlocks and  highEnabledBlock     None of the Blocks are  C90FL ERROR AIC NO BLOCK   enabled for Array Integrity  Check                      Comments    The inputs lowEnabledBlocks  midEnabledBlocks and highEnabledBlocks are bit mapped  arguments that are used to select the blocks to be evaluated in the Low Mid High address    4    DoclD024388 Rev 3 29 41       API specification    UM1620       30 41    spaces of main array  The selection of the blocks of the main array is determined by  setting clearing the corresponding bit in lowEnabledBlocks  midEnabledBlocks or  highEnabledBlocks     The bit allocations for blocks in one address space are  bi
38. on  E ET properly aligned  double word  64 bit  boundary   The area specified by dest   Check dest and dest size  The area  C90FL ERROR RANGE and size is out of the valid   to be checked must be within main  C9O0FL array ranges  array space or shadow space        There is a non blank  C90FL ERROR NOT BLANK   double word within the  area to be checked     Erase the relevant blocks and check  again                    Comments    If the blank checking fails  the first failing address is saved to  pFailAddress  and  the failing data in Flash is saved to    pFailData  The contents pointed by  pFailAddress and pFailData are updated only when there is a non blank location in  the checked Flash range     Assumptions    It assumes that the Flash block is initialized using a    Flashinit   API     2 6 4 FlashProgram      Description    This function programs the specified Flash areas with the provided source data  Input  arguments together with relevant Flash module status are checked  and relevant error code  is returned if there is any error     Prototype    UINT32 FlashProgram  PSSD CONFIG pSSDConfig   UINT32 dest    UINT32 size    UINT32 source    void   CallBack   void           Arguments  Table 15  Arguments for FlashProgram    Argument Description Range  SSDConfi Pointer to the SSD The values in this structure are chip dependent   P 9 Configuration Structure  Please refer to Section 2 3 for more details   Peslinguon address ca Any accessible address aligned on double word  Dest 
39. on if it can be suspended     Prototype    UINT32 FlashSuspend  PSSD CONFIG pSSDConfig   UINT8  suspendState   BOOL  suspendFlag          Arguments  Table 24  Arguments for FlashSuspend    Argument Description Range  SSDConfi Pointer to the SSD The values in this structure are chip dependent   p 9 Configuration Structure  Please refer to Section 2 3 for more details        Indicate the suspend state  suspendState of C9OFL module after the   All return values are enumerated in Table 27   function being called     Return whether the  suspended operation  if  there is any  is suspended  by this call     TRUE  the operation is suspended by this call     FALSE  either no operation to be suspended or the  operation is suspended not by this call     suspendFlag                   4    DoclD024388 Rev 3       UM1620    API specification       Return values    Table 25  Return values for FlashSuspend         UINT32 Successful completion  C90FL OK       Troubleshooting    None     Comments    After calling    FlashSuspend       read is allowed on both main array space and shadow row  without any Read While Write error  But data read from the blocks targeted for programming  or erasing is indeterminate even if the operation is suspended     This function should be used together with    FlashResume       The suspendFlag returned by     FlashSuspend      determine whether    FlashResume      needs to be called or not  If  suspendFlag is TRUE     FlashResume      must be called symmetricall
40. ooting for GetLock      Returned error bits Possible causes Solution          The input blkLockIndicator   Set this argument to correct    G20FL LERRORLOCKLINDIGATOR is invalid  value listed in Table 34                       24 41 DoclD024388 Rev 3 ky       UM1620    API specification       4    Comments    Following table defines and describes various blkLockIndicator values     Table 34  blkLockindicator definitions       Code Name Value Description  LOCK_SHADOW_PRIMARY 0 Primary block lock protection of shadow address space       Secondary block lock protection of shadow address    LOCK SHADOW SECONDARY   1  space       LOCK LOW PRIMARY  LOCK LOW SECONDARY    Primary block lock protection of low address space    Secondary block lock protection of low address space       LOCK MID PRIMARY Primary block lock protection of mid address space       LOCK MID SECONDARY Secondary block lock protection of mid address space                   oO  oO   BR  col N    LOCK_HIGH Block lock protection of high address space       For Shadow Low Mid address spaces  there are two block lock levels  The secondary level  of block locking provides an alternative means to protect blocks from being modified  A  logical    OR    of the corresponding bits in the primary and secondary lock registers for a block  determines the final lock status for that block  For high address space there is only one  block lock level     The output parameter bikLockState returns a bit mapped value indicating the bloc
41. programmed in Flash i    memory boundary in main array or shadow row                    4    DoclD024388 Rev 3 15 41       API specification    UM1620       Table 15  Arguments for FlashProgram    continued        Argument    Size    Description    Size  in bytes  of the Flash  region to be programmed     Range    If size   0  CIOFL OK is returned     It should be multiple of 8 and its combination with dest  should fall in either main array or shadow row        source    Source program buffer  address     This address must reside on word boundary        CallBack          Address of void call back  function pointer        Any addressable void function address  To disable it  use NULL_CALLBACK macro        Return values    Table 16  Return values for FlashProgram         Type    UINT32          Successful completion or error value     Description       Possible values    C90FL_OK   C90FL ERROR BUSY  C90FL ERROR ALIGNMENT  C90FL ERROR RANGE  C90FL ERROR PGOOD          Troubleshooting    Table 17  Troubleshooting for FlashProgram         Returned error bits    C90FL ERROR BUSY    C90FL ERROR ALIGNMENT    Description    New program operation  cannot be performed  because the Flash  module is busy with  some operation and  cannot meet the  condition for starting a  program operation     This error indicates that  dest size source isn t  properly aligned    Solution    Wait until the current operations finish   Conditions that program cannot start  are    1  program in progress  MCR
42. t 1 bit 0  reserved reserved block 5 block 4 Block 1 Block 0  If the selected main array blocks or the shadow row is locked for erasing  those blocks or  the shadow row are not erased  but    FlashErase      still returns C90FL OK  User needs to  check the erasing result with the    BlankCheck      function   It is impossible to erase any Flash block or shadow row when a program or erase operation  is already in progress on C9OFL module     FlashErase      returns CQOFL_ERROR_BUSY  when trying to do so  Similarly  once an erasing operation has started on C9OFL module  it is  impossible to run another program or erase operation   In addition  when    FlashErase      is running  it is unsafe to read the data from the Flash  module having one or more blocks being erased  Otherwise  it causes a Read While Write  error   Assumptions  It assumes that the Flash block is initialized using a    FlashlInit      API  User provides the  correct ssdconfig parameters to FlashErase   as returned by FlashInit     2 6 3 BlankCheck    Description    4    This function checks on the specified Flash range in the main array or shadow row for blank  state  If the blank checking fails  the first failing address and the failing data in Flash block  are saved     DoclD024388 Rev 3 13 41                   API specification UM1620  Prototype  UINT32 BlankCheck  PSSD CONFIG pSSDConfig   UINT32 dest   UINT32 size   UINT32   pFailAddress   UINT64  pFailData   void   CallBack   void      Arguments  Table 1
43. t O is assigned to block O  bit 1 to  block 1  etc  The following diagrams show the formats of lowEnabledBlocks   midEnabledBlocks and highEnabledBlocks for the C9OFL module     For low address space valid bits are from bit O to bit  lowBlockNum   1   In which   lowBlockNum is the number of low blocks returned from Flashlnit       For middle address space valid bits are from bit O and bit  midBlockNum     1   In which   midBlockNum is the number of middle blocks returned from FlashInit       For high address space valid bits are from bit O to bit  highBlockNum     1   In which   highBlockNum is the number of high blocks returned from FlashInit       For example  below are bit allocations for blocks in Low Mid High Address Space of  SPC564A70     Table 45  Bit allocation for blocks in low address space                                                                                        MSB LSB  bit 31 bit 10 bit 9 bit 8 bit 1 bit 0  reserved reserved block 9 block 8 block 1 block 0  Table 46  Bit allocation for blocks in middle address space  MSB LSB  bit 31 bit 4 bit 3 bit 2 bit 1 bit 0  reserved reserved   reserved   reserved   block 1 block 0  Table 47  Bit Allocation for Blocks in High Address Space  MSB LSB  bit 31 bit 6 bit 5 bit 4 bit 1 bit 0  reserved reserved block 5 block 4 Block 1 Block 0             If no blocks are enabled the C9OFL ERROR AIC NO BLOCK error code is returned     Depending on the address sequence specified the MISR values are calculated for the  e
44. the  CallBack service  the user is able to disable it by a NULL function macro      define NULL CALLBACK   void    OxFFFFFFFF     The job processing callback notifications shall have no parameters and no return value     4    8 41 DoclD024388 Rev 3       API specification       4    Return codes    The return code is returned to the caller function to notify the success or errors of the API  execution  These are the possible values of return code     Table 3  Return codes                                                          Name Value Description   C90FL OK 0x00000000  The requested operation is successful    C90FL INFO RWE 0x00000001 RWE bit is set before Flash operations    C90FL INFO EER 0x00000002 EER bit is set before Flash operations    C90FL ERROR ALIGNMENT 0x00000100   Alignment error    C90FL ERROR RANGE 0x00000200   Address range error   New program erase cannot be preformed   C90FL ERROR BUSY 0x00000300  while a high voltage operation is already in  progress    C90FL ERROR PGOOD 0x00000400  The program operation is unsuccessful    C90FL ERROR EGOOD 0x00000500  The erase operation is unsuccessful    C90FL ERROR NOT BLANK 0x00000600   There   s a non blank Flash memory location  within the checked Flash memory region   There is a mismatch between the source   C90FL ERROR VERIFY 0x00000700 data and the content in the checked Flash  memory    C90FL ERROR LOCK INDICATOR   0x00000800 Invalid block lock indicator    C90FL ERROR RWE 0x00000900 ON error occurred in prev
45. urn values for Flashinit      Type Description Possible values       Indicates either success or failure type  It is a bit  mapped return code so that more than one condition   C90FL OK   UINT32 can be returned with a single return code  Each bitin  C90FL INFO EER  the returned value  except for C90FL OK  indicates a   C9IOFL INFO RWE  kind of current status of CIOFL module  E E                   Troubleshooting    None     Comments       FlashInit      checks the C90FL MCR RWE and C90FL_MCR_EER bit  and clear them  when any of them is set  If RWE bit is set  Flash program erase operations can still be  performed     Assumptions    The user must correctly initialize the fields including c90f RegBase  mainArrayBase   shadowRowBase  shadowRowSize  pageSize and BDMEnable before passing the structure  to the Flashinit   functions     4    DoclD024388 Rev 3       UM1620    API specification                                     2 6 2 FlashErase    Description  This function erases the enabled blocks in the main array or the shadow row  Input  arguments together with relevant Flash module status are checked  and relevant error code  is returned if there is any error   Prototype  UINT32 FlashErase  PSSD CONFIG pSSDConfig   BOOL shadowFlag   UINT32 lowEnabledBlocks   UINT32 midEnabledBlocks   UINT32 highEnabledBlocks   void   CallBack   void     Arguments  Table 6  Arguments for FlashErase    Argument Description Range  SSDConfi Pointer to the SSD The values in this structure are chip 
46. whatsoever of such  third party products or services or any intellectual property contained therein     UNLESS OTHERWISE SET FORTH IN ST S TERMS AND CONDITIONS OF SALE ST DISCLAIMS ANY EXPRESS OR IMPLIED  WARRANTY WITH RESPECT TO THE USE AND OR SALE OF ST PRODUCTS INCLUDING WITHOUT LIMITATION IMPLIED  WARRANTIES OF MERCHANTABILITY  FITNESS FOR A PARTICULAR PURPOSE  AND THEIR EQUIVALENTS UNDER THE LAWS  OF ANY JURISDICTION   OR INFRINGEMENT OF ANY PATENT  COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT     ST PRODUCTS ARE NOT DESIGNED OR AUTHORIZED FOR USE IN   A  SAFETY CRITICAL APPLICATIONS SUCH AS LIFE  SUPPORTING  ACTIVE IMPLANTED DEVICES OR SYSTEMS WITH PRODUCT FUNCTIONAL SAFETY REQUIREMENTS   B   AERONAUTIC APPLICATIONS   C  AUTOMOTIVE APPLICATIONS OR ENVIRONMENTS  AND OR  D  AEROSPACE APPLICATIONS  OR ENVIRONMENTS  WHERE ST PRODUCTS ARE NOT DESIGNED FOR SUCH USE  THE PURCHASER SHALL USE PRODUCTS AT  PURCHASER S SOLE RISK  EVEN IF ST HAS BEEN INFORMED IN WRITING OF SUCH USAGE  UNLESS A PRODUCT IS  EXPRESSLY DESIGNATED BY ST AS BEING INTENDED FOR    AUTOMOTIVE  AUTOMOTIVE SAFETY OR MEDICAL    INDUSTRY  DOMAINS ACCORDING TO ST PRODUCT DESIGN SPECIFICATIONS  PRODUCTS FORMALLY ESCC  QML OR JAN QUALIFIED ARE  DEEMED SUITABLE FOR USE IN AEROSPACE BY THE CORRESPONDING GOVERNMENTAL AGENCY     Resale of ST products with provisions different from the statements and or technical features set forth in this document shall immediately void  any warranty granted by ST for the ST product
47. y to resume the  suspended operation     Following table defines and describes various suspend states and associated suspend  codes     Table 26  suspendState definitions                            Argument Code Description Valid operation after suspend  Erasing operation  programming  NO OPERTION 0 There is no program erase operation and read are valid on  operation  both main array space and  shadow row   There is a program i   i  PGM WRITE 1 sequence in interlock write Only read is valid on both main  array space and shadow row   stage   ERS WRITE 2 There is an erase sequence Only read is valid on both main  in interlock write stage  array space and shadow row   There is an erase suspend F      ERS SUS PGM WRITE  3 program sequence in Only read is valla on both maift    i i array space and shadow row   interlock write stage   PGM SUS 4 The program operation is in   Only read is valid on both main  suspended state  array space and shadow row   The erase operatonon   ado ave Head  ERS_SUS 5 main array is in suspended    ye y Spaco   is valid on both main array space  state   and shadow row        4    DoclD024388 Rev 3    21 41          API specification    UM1620       2 6 8    22 41    Table 26  suspendState definitions  continued        Argument    Code    Description    The erase operation on    Valid operation after suspend    Read is valid on both main array       SHADOW_ERS_SUS 6 shadow row is in suspended space and shadow space   state   The erase suspended i E 3  ER
    
Download Pdf Manuals
 
 
    
Related Search
    
Related Contents
page en PDF  ー 取扱説明書  Microstructure Profiler MSS90  Istruzioni per l`uso  Ferm PDM1035 circular saw  Sun Java Enterprise System 2005Q1  Samsung MC11H6033CT/AA Specification Sheet  Philips AW 7890 User's Manual  Fiche technique  Télécharger  - Fédération Française de Parachutisme    Copyright © All rights reserved. 
   Failed to retrieve file