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