AN98487 Programmer’s Guide for the Cypress 65 nm GL-S MirrorBit® Eclipse™ Flash Family Author: Gary Swalling Associated Part Family: S29GL-S, S29GL-N,S29GL-P AN98487 describes the new features of the Cypress S29GL-S Flash device family and software considerations for migrating from the S29GL-N and S29GL-P families. Contents 1 2 3 4 5 6 7 8 1 Introduction ............................................................... 1 Feature Comparisons Summary ............................... 1 Data Alignment and Granularity ................................ 2 Status Register and Data Polling .............................. 3 Device Identification and CFI .................................... 5 Embedded Operation Timing .................................... 7 Secure Silicon Region............................................... 7 Command Set Changes............................................ 8 8.1 Suspend and Resume Commands .................. 8 8.2 Blank Check Command ....................................8 8.3 Advanced Sector Protection .............................9 8.4 Unlock Bypass Command .................................9 8.5 Sector Erase Command ....................................9 9 Conclusion................................................................. 9 10 References ................................................................ 9 Document History Page ...................................................10 Worldwide Sales and Design Support ..............................11 Introduction The MirrorBit 65 nm GL-S is a family of 3.0-volt, page access, NOR flash memory products. This guide discusses new features of the S29GL-S and software considerations the designer should make when migrating from the S29GL-N or S29GL-P memory family. In this document, S29GL-S and GL-S refer to the 128 Mb, 256 Mb, 512 Mb, 1 Gb, and 2 Gb (dual die) densities only. 2 Feature Comparisons Summary Consider the following items when adapting software from S29GL-N or S29GL-P to S29GL-S: S29GL-S supports programming in address aligned 512-byte write buffers S29GL-S provides a Status Register in addition to the Data Polling feature S29GL-S includes updates to CFI and ID (Autoselect) S29GL-S has updated timing for various embedded operations S29GL-S provides an updated Secure Silicon Region S29GL-S has command set changes www.cypress.com – Improved Suspend and Resume commands – New Blank Check command – Advanced Sector Protection updates – Unlock Bypass command removed – Sector Erase command no longer supports multi-sector erase Document No. 001-98487 Rev. *C 1 Programmer’s Guide for the Cypress 65 nm GL-S MirrorBit® Eclipse™ Flash Family Table 1. Feature Comparisons Key Features GL-N GL-P GL-S Technology MirrorBit MirrorBit MirrorBit Eclipse Process Node 110 nm 90 nm 65 nm Densities 128 Mb to 512 Mb 128 Mb to 2 Gb (3) 128 Mb to 2 Gb (3) Data Bus Width 8-bit or 16-bit 8-bit or 16-bit 16-bit only Sector Erase Architecture 128 kB 128 kB 128 kB Read Page 16 bytes 16 bytes 32 bytes Write Buffer 32 bytes 64 bytes 512 bytes Single-Word Programming Yes Yes Yes Accelerated Programming Yes Yes No Unlock Bypass Yes Yes No Data Polling Status Yes Yes Yes (2) Status Register No No Yes Program Suspend / Resume Yes Yes Yes (1) Erase Suspend / Resume Yes Yes Yes Sector Erase Queuing Yes Yes No Software Sector Protection Advanced Sector Protection Advanced Sector Protection Advanced Sector Protection Secure Silicon Region 256 bytes 256 bytes 2 x 512 bytes Program-Erase Endurance (typical) 100,000 cycles per sector 100,000 cycles per sector 100,000 cycles per sector PPB Bit Endurance (typical) 100,000 cycles 100,000 cycles 1,000 cycles Data Retention (typical) 20-year 20-year 20-year Notes: 1. GL-S Program Suspend / Resume is backward compatible, but the new Program Suspend / Resume commands are recommended for new designs. 2. Data Polling Status may not be supported in future generations of the S29GL family; best practice is to use the Status Register. 3. The 2 Gb is a dual die solution. 3 Data Alignment and Granularity Many applications store data in multiples of 512 bytes. The S29GL-S devices have a 256-word (512-byte) write buffer aligned on 512-byte boundaries. Programming data to the flash is most efficient when writing in full Page Program Buffers. Although smaller writes are allowed, software should be modified to program data in full, address aligned, write buffer increments. For smaller or misaligned data writes, it is important to note that the embedded program operation happens in address aligned pages of 16 words (32 bytes). For optimal flash performance and reliability, data should be programmed in multiples of full 32-byte aligned pages. While multiple program operations within a 32 byte page are not best practice for S29GL-S devices, they are allowed for backwards compatibility with the S29GL-N and S29GL-P devices. For example, a simple flash file system might write two 512-byte file sectors, each with 30 bytes of metadata. Programming this data sequentially would cause several misalignments. Table 2. Misaligned Data Storage Order 1st 2nd 3rd 4th Size 512 bytes 30 bytes 512 bytes 30 bytes Byte Offset 0 512 542 1054 Data Written Internal Pages www.cypress.com Initial 512 bytes Page 0 … 30 bytes Page 15 Page 16 512 bytes Page 17 … Document No. 001-98487 Rev. *C Page 31 Page 32 30 bytes Not Written Page 33 Page 34 2 Programmer’s Guide for the Cypress 65 nm GL-S MirrorBit® Eclipse™ Flash Family Instead, the writes should be rearranged to maximize programming performance. In Table 3, sector data is written from the bottom of flash, and metadata is written from the top. The S indicates two bytes that are skipped and left unused. Page N is the last page in the device. M is the size of the flash device in bytes. Table 3. Aligned Data Storage Order 1st 2nd 3rd 4th Size 512 bytes 30 bytes 512 bytes 30 bytes Byte Offset 0 M - 32 512 M - 64 Initial 512 bytes 512 bytes Data Written Internal Pages 4 Page 0 … Page 15 Page 16 … 30 bytes Not Written Page 31 S 30 bytes Page N 1 … S Page N Status Register and Data Polling The S29GL-S devices are backward compatible with the Data Polling Status (toggle bits) feature from previous generations. The S29GL-S devices also offer a Status Register for software to check the status of an embedded operation. After issuing the Status Register Read command, the Status Register values are available for one read access, anywhere in the selected sector. Table 4. Status Register Bits Bit # 15:8 Name 7 6 5 4 3 2 1 DRB ESSB ESB PSB WBASB PSSB SLSB 0 Description Reserved Device Ready or Busy Erase Suspend Status Erase Status Program Status Write Buffer Abort Status Program Suspend Status Sector Lock Status Reserved Busy Value Invalid 0 Invalid Invalid Invalid Invalid Invalid Invalid Invalid 1 Erase Suspende d Erase Error or Not Erased (Blank Check) Program Error or Password Unlock Error Abort During Write Buffer Program Program Suspende d Sector Locked Error Reserved No Program nor Password Unlock Error No Abort Error No Program Suspend No Lock Error Reserved 0 0 0 0 0 When DRB Indicates Ready, Value 1 in Bit 6 through Bit 1 Indicates Reserved When DRB Indicates Ready, Value 0 in Bit 6 through Bit 1 Indicates Reserved 1 No Erase Suspend No Erase Error or Erased (Blank Check) Reset Value X 1 0 0 While the device is busy (DRB = 0), the remaining bits are invalid. Once the device is ready (DRB = 1), the remaining bits can be interpreted for device status. The Error bits (ESB, PSB, WBASB, and SLSB) can be cleared by issuing the Clear Status Register command or the Reset command or the Write-to-Buffer-Abort Reset command. www.cypress.com Document No. 001-98487 Rev. *C 3 Programmer’s Guide for the Cypress 65 nm GL-S MirrorBit® Eclipse™ Flash Family Table 5. Status Register Commands First Command Sequence Cycles Word Address Second Third Data Word Address Data X RD 2AAh 55h Read Status Register 2 555h 70h Clear Status Register 1 555h 71h Reset (1) 1 X F0h Write-to-Buffer-Abort Reset 3 555h AAh Legend: RD = Read Data Word Address Data 555h F0h X = Any flash address Note: 1. The Reset command clears error bits in the Status Register. Software can be simplified by using the Status Register to check device status because a single status read can be used to determine device status. The legacy Data Polling method requires comparison of multiple reads to determine device status. The Cypress Low Level Driver (LLD) provides software examples for both Data Polling and Status Register polling. The LLD can be downloaded from the Cypress website (www.cypress.com). Figure 1 is one example of logic for Status Register Polling. Software only needs to read the register once to interpret the flash status. Figure 1. Status Register Usage Flow Diagram Write Status Read command Embedded Operation Started Bit 7 = 0 ? Read Actively Programming or Erasing Yes Invalid Operation No No Operation = Erase Suspend? No Yes No Erase in Suspension Erase Completed Not Suspended Bit 5 = 0 ? Erase Failed Yes Bit 2 = 0 ? Program Completed Not Suspended Yes Bit 4 = 0 ? No No Erase Successful Operation = Program? Yes Yes Yes No No Operation = Program Suspend? Yes Yes Bit 6 = 0 ? No Operation = Erase? Program Successful Program Failed Program in Suspension Yes Bit 1 = 0? No Sector Not Locked Sector Locked Error www.cypress.com Document No. 001-98487 Rev. *C 4 Programmer’s Guide for the Cypress 65 nm GL-S MirrorBit® Eclipse™ Flash Family 5 Device Identification and CFI The S29GL-S devices have combined Device Identification (ID), formerly called Autoselect, and Common Flash Interface (CFI) address spaces. Both Device ID and CFI access commands are backward compatible with previous generations of flash, but now either command can be used to access the same information. The ID-CFI information is available at the same offsets defined for S29GL-N and S29GL-P families, but data may have changed at some locations. Table 6. ID-CFI Commands First Command Sequence Cycles Word Address Second Data Word Address 2AAh ID Entry (Autoselect) 3 555h AAh CFI Entry 1 SA + 55h 98h ID-CFI Read 1 RA RD Reset/ASO Exit 1 X F0h Legend: SA = Sector Address X = Any flash address RA = Read Address Third Data Word Address Data 55h SA + 555h 90h RD = Read Data ASO = Address Space Overlay The S29GL-S devices have Device ID codes that are backward compatible with GL-N and GL-P devices of the same density. Most features are backward compatible, but as described subsequently there are some differences that systems designers should consider. Software that only reads the ID (Autoselect) code to identify a device may attempt operations that are not compatible with the specific S29GL-S device. Table 7. Device IDs Density GL-N GL-P GL-S 128 Mb 227Eh / 2221h / 2201h 227Eh / 2221h / 2201h 227Eh / 2221h / 2201h 256 Mb 227Eh / 2222h / 2201h 227Eh / 2222h / 2201h 227Eh / 2222h / 2201h 512 Mb 227Eh / 2223h / 2201h 227Eh / 2223h / 2201h 227Eh / 2223h / 2201h 1 Gb 227Eh / 2228h / 2201h 227Eh / 2228h / 2201h 2 Gb 227Eh / 2248h / 2201h 227Eh / 2248h / 2201h Note: 1. Data are read from addresses 01h, 0Eh, and 0Fh within the Device ID ASO. Since the device IDs are the same across the different lithographies, software should use the CFI information to detect device features and use the flash devices appropriately. Below are differences in CFI information between S29GL-S and previous generations. Table 8. CFI Register Differences (Sheet 1 of 2) CFI Register N Word Offset GL-N GL-P GL-S Typical timeout for single-word write = 2 µs 1Fh 0007h 0006h 0008h Typical timeout for maximum multi-byte program = 2N µs 20h 0007h 0009h 0009h Typical timeout for individual block erase = 2N ms 21h 000Ah 0009h 0008h Typical timeout for full chip erase = 2N ms 0000h = Not Supported 22h 0000h 0013h (1 Gb) 0012h (512 Mb) 0011h (256 Mb) 0010h (128 Mb) 0013h (2 Gb) 0012h (1 Gb) 0011h (512 Mb) 0010h (256 Mb) 000Fh (128 Mb) Maximum timeout for single-word = 2N times typical 23h 0003h 0003h 0001h Maximum timeout for maximum multi-byte program = 2N times typical 24h 0005h 0005h 0002h Maximum timeout for individual block erase = 2N times typical 25h 0004h 0003h 0003h www.cypress.com Document No. 001-98487 Rev. *C 5 Programmer’s Guide for the Cypress 65 nm GL-S MirrorBit® Eclipse™ Flash Family Table 8. CFI Register Differences (Sheet 2 of 2) Word Offset GL-N GL-P GL-S Maximum timeout for full chip erase = 2N times typical 0000h = Not Supported CFI Register 26h 0000h 0002h 0003h Flash Device Interface Description 0000h = x8-only, 0001h = x16-only, 0002h = x8/x16 capable 28h 0002h 0002h 0001h Maximum number of bytes in multi-byte write = 2N 2Ah 0005h 0006h 0009h Minor version number, ASCII 44h 0033h 0033h 0035h Process Technology (Bits 5-2) 0100b = 110 nm MirrorBit, 0101b = 90 nm MirrorBit, 0111b = 65 nm MirrorBit Eclipse Address Sensitive Unlock (Bits 1-0) 00b = Required, 01b = Not Required 45h 0010h 0014h 001Ch Page Mode Type 0002h = 8-word Page, 0003h = 16-word Page 4Ch 0002h 0002h 0003h ACC (Acceleration) Supply Minimum 0000h = Not Supported, D[7:4] = V, D[3:0] = 100 mV 4Dh 00B5h 00B5h 0000h ACC (Acceleration) Supply Maximum 0000h = Not Supported, D[7:4] = V, D[3:0] = 100 mV 4Eh 00C5h 00C5h 0000h Unlock Bypass 0000h = Not Supported, 0001h = Supported 51h – – 0000h Secure Silicon Sector (Customer OTP Area) Size = 2N bytes 52h – – 0009h Software Features 53h – – 008Fh Read Page Size = 2 bytes 54h – – 0005h Erase Suspend Timeout Maximum < 2N µs 55h – – 0006h N N Program Suspend Timeout Maximum < 2 µs 56h – – 0006h Embedded Hardware Reset Timeout Maximum < 2N µs 78h – – 0006h Non-embedded Hardware Reset Timeout Maximum < 2N µs 79h – – 0009h There are no CFI entries for unlock bypass, status register, and sector erase queuing that are supported by some of these devices. However, software can use the minor version number to determine which set of these features is supported. if ((minor_version == 0x33)&&(major_version == 0x31)) { polling_method = DATA_POLLING; sector_erase = QUEUE_MULTIPLE_SECTORS; word_program = USE_UNLOCK_BYPASS; } else if ((minor_version >= 0x35)&&(major_version == 0x31)) { polling_method = STATUS_REGISTER_POLLING; sector_erase = SINGLE_SECTOR; word_program = NO_UNLOCK_BYPASS; } else { // Handle error for invalid CFI version } Certain software drivers verify specific values in the CFI register to assure support for the specific flash. Linux MTD drivers verify the Major and Minor version number (ASCII) entries at CFI register word offsets 43h and 44h, respectively, to select the correct device-support code. GL-N and GL-P flash have a Major version number value of 0031h (ASCII “1”) and a Minor version number value of 0033h (ASCII “3”) to indicate the CFI Register follows the CFI 1.3 standard. The GL-S flash have a Major version number value of 0031h (ASCII “1”) and a Minor version number value of 0035h (ASCII “5”) to indicate the CFI Register follows the CFI 1.5 standard. This difference www.cypress.com Document No. 001-98487 Rev. *C 6 Programmer’s Guide for the Cypress 65 nm GL-S MirrorBit® Eclipse™ Flash Family causes legacy MTD drivers to not recognize the GL-S flash. In that case, a software patch is required to update the MTD for GL-S support. An appropriate Linux driver patch can be downloaded from www.cypress.com. 6 Embedded Operation Timing There are timing differences between S29GL-S devices and previous generations. Table 9 highlights timings that may impact software design. Many of these values are also accessible to software via the Common Flash Interface (CFI) as described in Section 5, Device Identification and CFI on page 5. Table 9. Embedded Operation Timeout Differences Flash Operation Single-word Programming Typ, Min, or Max GL-N GL-P GL-S Unit Typ 60 60 125 µs Max – – 400 µs Typ 240 480 340 µs (2) Max – – 750 µs Effective Write Buffer Programming per Word (maximum size) Typ 15 15 1.33 µs Write Buffer Programming (maximum size) Sector Erase (128 kB) Typ 500 500 275 ms Max 3500 3500 1100 ms Erase Suspend / Erase Resume Max 15 (1) 15 40 µs Program Suspend / Program Resume Max 15 (1) 15 40 µs Erase Resume to Next Erase Suspend Min 5000 5000 100 µs Program Resume to Next Program Suspend Min 1000 1000 100 µs Typ – – 6.2 ms Max – – 8.5 ms Blank Check Hardware Reset During an Embedded Operation (tRPH or tReady) Max 0.02 – – µs Min – 35 35 µs Hardware Reset During a Non-embedded Operation (tRPH or tReady) Max 0.5 – – µs Min – 35 35 µs Notes: 1. 20 µs for GL032N and GL064N. 2. 256 Words for GL-S, 32 Words for GL-P, and 16 Words for GL-N. 7 Secure Silicon Region The S29GL-S devices have a different organization of the Secured Silicon Region than previous generations. The Factory Locked Secure Silicon Region is larger on the GL-S, but the starting offset is still zero. The usage of this area is backwards compatible with the GL-N and GL-P. The Customer Locked Secure Silicon Region is also larger on the GL-S, but the starting offset is different. GL-N and GL-P devices ordered with the “Customer Lockable” option provide lockable memory from word offset 0 to 7Fh. GL-S devices provide lockable memory from word offset 100h to 1FFh. Please note that these differences may require updates to the configuration of programmers and/or system software. The commands to program and lock the Secure Silicon Region are similar to previous generations. Please note that the GL-S Customer Locked area is protected by programming bit 6 of the Lock Register; Bit 0 is used for this purpose in previous generations. www.cypress.com Document No. 001-98487 Rev. *C 7 Programmer’s Guide for the Cypress 65 nm GL-S MirrorBit® Eclipse™ Flash Family 8 8.1 Command Set Changes Suspend and Resume Commands The S29GL-S family has backward compatible support for suspend and resume commands. However, when suspend status is detected using Data Polling, there is no means to determine whether an erase versus a program operation is suspended. If an erase operation is suspended in order to perform programming and the program operation is later suspended to perform a read, it is not possible to determine whether the program operation is suspended or completed. Using the single legacy resume command can unintentionally resume the suspended erase operation if the program operation is completed rather than suspended. This confusion can be avoided by using the new Program Suspend and Program Resume commands for program operations and the legacy suspend and resume commands for erase operations. Table 10. Suspend and Resume Commands Command Sequence Cycles First Word Address Data Erase Suspend / Program Suspend 1 X B0h Erase Resume / Program Resume 1 X 30h Program Suspend 1 X 51h Program Resume 1 X 50h Legend: X = Any flash address Systems designers should also consider the increased maximum latency for erase and program suspend in the GL-S device. Table 11. Maximum Suspend Latency Operation 8.2 GL-N GL-P GL-S Erase Suspend 20 µs 20 µs 40 µs Program Suspend 15 µs 15 µs 40 µs Blank Check Command The S29GL-S devices offer a new Blank Check command. This command verifies that the selected sector is fully erased. The Blank Check command is significantly faster than a sector erase operation. Overall system performance may be improved by checking if a sector is erased before performing an erase operation. The Blank Check command may or may not be slower than using the system processor to verify a sector is blank by reading, but the Blank Check command can free the processor to do other work while a Blank Check operation is in progress. Before issuing the Blank Check command software must make sure the flash is not suspended or busy with an erase or program operation. Reading flash array data is not allowed while the Blank Check is running since the device is busy; polling data is returned instead. Software should check Status Register Bit 7 to detect completion of the Blank Check. Once complete, Status Register Bit 5 holds the result. If Bit 5 is one (1) the selected sector is erased. If Bit 5 is zero (0), the selected sector is not erased. Table 12. Blank Check Command Command Sequence Blank Check Cycles 1 First Word Address Data SA + 555h 33h Legend: SA = Sector Address www.cypress.com Document No. 001-98487 Rev. *C 8 Programmer’s Guide for the Cypress 65 nm GL-S MirrorBit® Eclipse™ Flash Family 8.3 Advanced Sector Protection The S29GL-S devices offer Advanced Sector Protection that is backward compatible with previous generations of GL devices. Each flash sector can be protected by a Persistent Protection Bit (PPB) or a Dynamic Protection Bit (DYB). All PPBs are locked in the current state by clearing the PPB Lock Bit to zero (0). The Persistent Method and Password Method determine the behavior of the PPB Lock Bit. Flash devices ship with all sectors unprotected. 8.3.1 Dynamic Protection Boot Option The S29GL-S devices can be custom ordered with each DYB cleared to zero (0; protected) after power-on reset or hardware reset. Normally, each DYB is set to one (1; unprotected) after power-up or reset. In DYB Boot Mode, sectors are initially protected by DYB, but can be unlocked. 8.3.2 Lock Register Reserved Bits When issuing the Lock Register Program command to S29GL-S devices, all reserved bits must be masked to one (1). 8.4 Unlock Bypass Command The S29GL-S devices do not support the Unlock Bypass command, which is available in the GL-N and GL-P families. When a series of program operations are needed in GL-N and GL-P, the Unlock Bypass feature enables software to skip the unlock cycles in subsequent program command sequences. Unlock Bypass may also be used with Sector Erase and Chip Erase operations on GL-N and GL-P. Since the Unlock Bypass feature is not available on GL-S the standard unlock cycles are required for each program or erase sequence. The Unlock Bypass Command provided a small reduction in command cycle overhead in legacy devices where the system relies on single-word programming. The GL-S family provides a 512-byte write buffer and much faster programming speed, so the Unlock Bypass command is not needed. 8.5 Sector Erase Command The S29GL-S devices support the Sector Erase command but only for erasing a single sector. GL-N and GL-P devices allow multiple sector address and sector erase command pairs to be written within a 50 µs timeout period after issuing the Sector Erase command sequence. When using Data Polling Status, the DQ3 bit shows a one (1) immediately following the erase command. This tells well designed Multi-Sector Erase software that the timeout period has expired and the window for writing additional sector addresses has closed. This allows Multi-Sector Erase software to issue single sector erase commands even if the software is designed to use multi-sector erase. 9 Conclusion The S29GL-S family offers an easy transition from GL-N and GL-P devices. Some software changes may be needed to store data efficiently. New features give system designers more options and flexibility. 10 References S29GL-S MirrorBit Flash Family Data Sheet Cypress Application Note, Migration from GL-N and GL-P to GL-S Flash www.cypress.com Document No. 001-98487 Rev. *C 9 Programmer’s Guide for the Cypress 65 nm GL-S MirrorBit® Eclipse™ Flash Family Document History Page Document Title: AN98487 - Programmer’s Guide for the Cypress 65 nm GL-S MirrorBit® Eclipse™ Flash Family Document Number: 001-98487 Rev. ECN No. Orig. of Change Submission Date Description of Change ** 12/17/2010 Initial version *A 06/24/2011 Global update 07/25/2011 Updated table in Embedded Operation Timing 09/18/2015 Updated in Cypress template *B *C 4908282 www.cypress.com MSWI Document No. 001-98487 Rev. *C 10 Programmer’s Guide for the Cypress 65 nm GL-S MirrorBit® Eclipse™ Flash Family Worldwide Sales and Design Support Worldwide Sales and Design Support Cypress maintains a worldwide network of offices, solution centers, manufacturers’ representatives, and distributors. To find the office closest to you, visit us at Cypress Locations. # 999 Products PSoC® Solutions Automotive..................................cypress.com/go/automotive psoc.cypress.com/solutions Clocks & Buffers ................................ cypress.com/go/clocks PSoC 1 | PSoC 3 | PSoC 4 | PSoC 5LP Interface......................................... cypress.com/go/interface Cypress Developer Community Lighting & Power Control ............cypress.com/go/powerpsoc Memory........................................... cypress.com/go/memory PSoC ....................................................cypress.com/go/psoc Touch Sensing .................................... cypress.com/go/touch Community | Forums | Blogs | Video | Training Technical Support cypress.com/go/support USB Controllers ....................................cypress.com/go/USB Wireless/RF .................................... cypress.com/go/wireless MirrorBit®, MirrorBit® Eclipse™, ORNAND™, EcoRAM™ and combinations thereof, are trademarks and registered trademarks of Cypress Semiconductor Corp. All other trademarks or registered trademarks referenced herein are the property of their respective owners. Cypress Semiconductor 198 Champion Court San Jose, CA 95134-1709 Phone: Fax: Website: 408-943-2600 408-943-4730 www.cypress.com © Cypress Semiconductor Corporation, 2010-2015. The information contained herein is subject to change without notice. Cypress Semiconductor Corporation assumes no responsibility for the use of any circuitry other than circuitry embodied in a Cypress product. Nor does it convey or imply any license under patent or other rights. Cypress products are not warranted nor intended to be used for medical, life support, life saving, critical control or safety applications, unless pursuant to an express written agreement with Cypress. Furthermore, Cypress does not authorize its products for use as critical components in life-support systems where a malfunction or failure may reasonably be expected to result in significant injury to the user. The inclusion of Cypress products in life-support systems application implies that the manufacturer assumes all risk of such use and in doing so indemnifies Cypress against all charges. This Source Code (software and/or firmware) is owned by Cypress Semiconductor Corporation (Cypress) and is protected by and subject to worldwide patent protection (United States and foreign), United States copyright laws and international treaty provisions. Cypress hereby grants to licensee a personal, non-exclusive, non-transferable license to copy, use, modify, create derivative works of, and compile the Cypress Source Code and derivative works for the sole purpose of creating custom software and or firmware in support of licensee product to be used only in conjunction with a Cypress integrated circuit as specified in the applicable agreement. Any reproduction, modification, translation, compilation, or representation of this Source Code except as specified above is prohibited without the express written permission of Cypress. Disclaimer: CYPRESS MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS MATERIAL, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. Cypress reserves the right to make changes without further notice to the materials described herein. Cypress does not assume any liability arising out of the application or use of any product or circuit described herein. Cypress does not authorize its products for use as critical components in life-support systems where a malfunction or failure may reasonably be expected to result in significant injury to the user. The inclusion of Cypress' product in a life-support systems application implies that the manufacturer assumes all risk of such use and in doing so indemnifies Cypress against all charges. Use may be limited by and subject to the applicable Cypress software license agreement. www.cypress.com Document No. 001-98487 Rev. *C 11