SmartFusion2 SoC FPGA In-System Programming Using USB OTG Controller Interface - Libero SoC v11.6 DG0471 Demo Guide October 2015 SmartFusion2 SoC FPGA In-System Programming Using USB OTG Controller Interface - Libero SoC v11.6 Revision History Date Revision Change 7 Eighth release 15 June 2015 6 Seventh release 09 March 2015 5 Sixth release 18 August 2014 4 Fifth release 3 May 2014 3 Fourth release 16 December 2013 2 Third release 27 November 2013 1 Second release 09 October 2013 0 First release 30 October 2015 Confidentiality Status This is a non-confidential document. DG0471: SmartFusion2 SoC FPGA In-System Programming Using USB OTG Controller Interface - Libero SoC v11.6 Table of Contents Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 About this document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Intended Audience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Microsemi Publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 In-System Programming Using USB OTG Controller Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Design Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Demo Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Setting Up the Demo Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Running the Demo Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Authenticate Operation Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verify Operation Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Program Operation Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 13 18 19 21 Checking if the Fabric is Programmed Successfully . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Checking if the eNVM is Programmed Successfully . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Programming Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Known Issue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Appendix 1: Board Setup Through the USB to UART (FTDI) Interface using the USB A to Mini - B Cable . . . . . Appendix 2: Jumper Locations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Appendix 3: Error Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Appendix 4: Generating .spi Programming File using Libero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Appendix 5: Hardware Project Implementation Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 24 25 26 27 30 Configuring the I/Os for Flash*Freeze Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Standby Clock Source Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 SoftConsole Project Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Appendix 6: Implementing Workaround to Access Fabric LSRAM after IAP or ISP Program Operation . . . . . . . 34 Changes Required in Libero Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 A List of Changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 B Product Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Customer Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Customer Technical Support Center . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Technical Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Website . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Contacting the Customer Technical Support Center . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 41 41 41 41 Email . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 My Cases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Outside the U.S. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 ITAR Technical Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Revision 7 3 Preface About this document This demo is for the SmartFusion®2 system-on-chip (SoC) field programmable gate array (FPGA) devices. It provides instructions on how to use the corresponding reference design. Intended Audience SmartFusion2 devices are used by: • FPGA designers • Embedded designers • System-level designers References Microsemi Publications • UG0451: IGLOO2 and SmartFusion2 Programming User Guide • UG0450: SmartFusion2 SoC FPGA and IGLOO2 FPGA System Controller User Guide • UG0331: SmartFusion2 Microcontroller Subsystem User Guide • AC390: SmartFusion2 SoC FPGA Remapping eNVM, eSRAM, and DDR/SDR SDRAM Memories Application Notes • Configuring Serial Terminal Emulation Programs Tutorial See the following web page for a complete and up-to-date listing of SmartFusion2 device documentation: http://www.microsemi.com/products/fpga-soc/soc-fpga/smartfusion2#documents. Revision 7 4 In-System Programming Using USB OTG Controller Interface Introduction In-system programming (ISP) allows to reprogram the design iterations and field upgrades. The SmartFusion2 devices support ISP using universal serial bus (USB) on-the-go (OTG) controller interface. This document describes how to program the following using ISP through the USB OTG controller interface: • Embedded nonvolatile memory (eNVM) • FPGA fabric • Both the eNVM and the FPGA fabric For information on different programming modes supported by SmartFusion2 SoC FPGAs, refer to the UG0451: IGLOO2 and SmartFusion2 Programming User Guide. For information on USB OTG controller, refer to the UG0331: SmartFusion2 Microcontroller Subsystem User Guide. Design Requirements Table 1 • Design Requirements Design Requirements Description Hardware Requirements SmartFusion2 Advanced Development Kit: • 12 V adapter • FlashPro5 programmer • USB A to Mini-B cable Host PC or Laptop Rev A or later Any 64-bit Windows Operating System Software Requirements Libero® System-on-Chip (SoC) v11.6 SoftConsle v3.4 SP1 FlashPro Programming Software v11.6 Host PC Drivers USB to UART Revision 7 5 In-System Programming Using USB OTG Controller Interface Demo Design Introduction The demo design files are available for download from the following path in the Microsemi® website: http://soc.microsemi.com/download/rsc/?f=m2s_dg0471_liberov11p6_df The demo design files include: • Sample programming files • Libero SoC project • STAPL programming file • Source files • readme.txt Figure 1 shows the top-level structure of the design files. For further details, refer to the readme.txt file. GRZQORDGBIROGHU! VIBLVSBXVLQJBXVEBLQWHUIDFHBGHPRBGI VDPSOHBSURJUDPPLQJBILOHV OLEHUR VWDSOBSURJUDPPLQJBILOH 6RXUFHILOHV UHDGPHW[W Figure 1 • Demo Design Files Top-Level Structure Figure 2 on page 7 describes the top-level demo. The SmartFusion2 device application configures the following: • The MMUART_0 peripheral for serial communication with a host PC. • The USB OTG as mass storage class host, which can read or write files from the mass storage device connected to the SmartFusion2 device through USB cable with Micro A end. Refer to the "Appendix 5: Hardware Project Implementation Settings" section on page 30. The SmartFusion2 device also initializes the system controller to run the ISP service. The SmartFusion2 device detects the connected USB mass storage device and accesses the programming files. The ARM® Cortex®-M3 processor reads 512 byte blocks of the programming file data from the USB mass storage device and sends the received blocks of data to the system controller ISP service. 6 R e vi s i o n 7 DG0471: SmartFusion2 SoC FPGA In-System Programming Using USB OTG Controller Interface - Libero SoC v11.6 The system controller ISP service executes the ISP operation in the requested mode and reports the status to the Cortex-M3 processor. Refer to the "Description" section on page 8 for information on the various modes of operation. Cortex-M3 System Controller MSS COMM_ BLK COMM_ BLK Cache Controller USB Mass Storage Device USB OTG APB_1 SII Master USI AHB SII Master UJTAG AHB Bus Matrix eNVM_0 eNVM_1 MMUART_0 Host PC Data Transfer from USB Mass Storage Device FPGA Fabric Programming eNVM and/or Fabric using System Controller ISP Service SmartFusion2 Figure 2 • APB_0 Top Level Demo Diagram Connect the host PC to the SmartFusion2 device using the USB to UART (FTDI) interface. Features This demo design performs three types of programming based on the input provided by the programming file. • eNVM programming: The ISP programming service programs only eNVM. In this case, the input programming file has only eNVM content. • FPGA fabric programming: The ISP programming service programs only the FPGA fabric. In this case, the input programming file has only the FPGA fabric content. • eNVM and FPGA fabric programming: The ISP programming service programs both the FPGA fabric and eNVM. In this case, the input programming file has both the FPGA fabric and eNVM content. Revision 7 7 In-System Programming Using USB OTG Controller Interface Description The ISP in SmartFusion2 devices is performed by the Cortex-M3 processor and the system controller. The system controller manages the SmartFusion2 device programming and handles the system service requests. The SmartFusion2 device allows the Cortex-M3 processor to directly provide a bitstream to the system controller for programming. The Cortex-M3 processor initializes the system controller and receives the programming bitstream from the USB mass storage device through the USB OTG controller interface. The received bitstream is sent to the system controller to execute the ISP service in one of the following modes of operations: • Authenticate: The system controller ISP service validates the integrity of the input data bitstream and reports the status information to the Cortex-M3 processor. – • Program: The system controller ISP service programs the following depending on the input data bitstream: – • For security and reliability reasons, Microsemi recommends that the bitstream is authenticated before the program is executed using the Authenticate Operation mode. The SmartFusion2 device application must commit only the bitstream for programming after successful authentication and the integrity of the bitstream is validated. eNVM – FPGA fabric – Both the eNVM and the FPGA fabric Verify: The system controller ISP service verifies the contents of the SmartFusion2 device against the input data bitstream and reports the status information to the Cortex-M3 processor. The system controller ISP service utilizes the COMM_BLK interface to receive the entire programming data bitstream as a continuous stream of bytes. Refer to the UG0331: SmartFusion2 Microcontroller Subsystem User Guide for more information on communication block (COMM_BLK). The Cortex-M3 processor in the SmartFusion2 device can execute an application image from embedded SRAM (eSRAM), eNVM or DDR/SDR memories. Refer to the AC390: SmartFusion2 SoC FPGA Remapping eNVM, eSRAM, and DDR/SDR SDRAM Memories Application Notes for more information on remapping techniques. In this demo design, the Cortex-M3 processor executes the ISP application image from eSRAM while the eNVM programming taking place, that is during Program operation mode. In order to execute the application image from eSRAM, the Cortex-M3 processor copies the ISP application image (resides in eNVM data client) to the eSRAM and remaps the eSRAM to the Cortex-M3 processor code region. For Verify and Authenticate operation modes, the application image can be executed from either eNVM or eSRAM since the eNVM programming is not taking place. Refer to the "Appendix 5: Hardware Project Implementation Settings" section on page 30. Programming Files Sample programming files with the file extension .spi are provided to program: • eNVM • FPGA fabric • Both the eNVM and the FPGA fabric The folder <download_folder>\sf2_isp_using_usb_interface_demo_df\sample_programming_files contains the following sample programming files along with Libero design files. • envmonly.spi: Programs only eNVM. The eNVM client has a simple message display program. • fabriconly.spi: Programs only the FPGA fabric. The FPGA fabric has a light-emitting diode (LED) blinking logic. • fabenvm.spi: Programs both the FPGA fabric and eNVM. The eNVM client has a message display program and the FPGA fabric has an LED blinking logic. The folder <download_folder>\sf2_isp_using_usb_interface_demo_df\sample_programming_files\fabric_an d_envm contains the Libero design to generate this sample programming file. • isp_demo.spi: This is the .spi file format version of isp_demo.stp file provided in <download_folder>\sf2_isp_using_usb_interface_demo_df\stapl_programming_file. Note: For more information on generating .spi programming files refer to the "Appendix 4: Generating .spi Programming File using Libero"section on page 27. 8 R e vi s i o n 7 DG0471: SmartFusion2 SoC FPGA In-System Programming Using USB OTG Controller Interface - Libero SoC v11.6 ISP Execution Flow Figure 3 on page 10 describes the ISP flow. The SmartFusion2 device application initially configures the USB OTG controller in host mode and MMUART_0 for serial communication. It also initializes the system controller to start the ISP service in the selected operation mode. On receiving the ISP operation mode and the programming file index, the application starts reading the input source programming file in a 512 byte blocks. The application stores the received data in a temporary buffer and sends the same data to the ISP service. The application requests the next block of 512 byte data until the entire file gets transferred from the USB mass storage device. The SmartFusion2 device application is notified with a status code when the ISP service completes the authentication or the verification process. When the operation mode is Program, an internal device reset is generated for the new design to take effect. Revision 7 9 In-System Programming Using USB OTG Controller Interface Figure 3 shows the ISP execution flow. 6WDUW6PDUW)XVLRQ'HYLFH $SSOLFDWLRQ ,QLWLDOL]HWKH8$57 ,QLWLDOL]HWKHV\VWHPFRQWUROOHU &RQILJXUHWKH86%27*LQKRVWPRGH $FFHVVWKH86%PDVVVWRUDJHGHYLFH *HWWKH,63RSHUDWLRQPRGH 'LVSOD\DYDLODEOHILOHV *HWWKHSURJUDPPLQJILOH,QGH[ $XWKHQWLFDWH 3URJUDP :KLFK,63 2SHUDWLRQ PRGH" 9HULI\ 6WDUWWKH,63VHUYLFHZLWK 3URJUDPRSHUDWLRQPRGH 6WDUWWKH,63VHUYLFHZLWK $XWKHQWLFDWHRSHUDWLRQPRGH 6WDUWWKH,63VHUYLFHZLWK 9HULI\RSHUDWLRQPRGH 5HDGELWVWUHDPIURPWKH 86%0DVVVWRUDJHGHYLFH WRLQSXWWKH,63VHUYLFH 5HDGELWVWUHDPIURPWKH 86%0DVVVWRUDJHGHYLFH WRLQSXWWKH,63VHUYLFH 1R 1R VSLILOH WUDQVIHUUHG FRPSOHWHO\" VSLILOH WUDQVIHUUHG FRPSOHWHO\" <HV 6WDUWQHZGHVLJQ DSSOLFDWLRQ <HV ,QWHUQDOGHYLFHUHVHW IRUQHZGHVLJQWR WDNHHIIHFW 5HSRUWWKHFRPSOHWLRQRIWKH RSHUDWLRQZLWKVWDWXVFRGHWR 6HULDOWHUPLQDOHPXODWLRQSURJUDP 1HZGHVLJQ H[HFXWLRQ 6WRS 3UHVVDQ\NH\WRFRQWLQXH Figure 3 • 10 Execution Flow of ISP Operation Mode R e visio n 7 DG0471: SmartFusion2 SoC FPGA In-System Programming Using USB OTG Controller Interface - Libero SoC v11.6 Setting Up the Demo Design The following steps describe how to setup the demo for SmartFusion2 Advanced Development Kit board: 1. Connect the host PC to the J18 Connector using the USB A to mini-B cable. The USB to UART bridge drivers are automatically detected. Download and install the drivers from www.microsemi.com/soc/documents/CDM_2.08.24_WHQL_Certified.zip if the drivers are not installed or detected automatically. Verify if the detection is made in the device manager, as shown in Figure 4. Figure 4 • Device Manager Revision 7 11 In-System Programming Using USB OTG Controller Interface 2. Select one of the four COM ports with Location as on USB FP5 Serial Converter C. Figure 5 shows the Device Manager window and its properties that display the USB Serial Port details.The COM port number is required to run the demo design. Figure 5 • Device Manager - FlashPro5 (COM33) Properties 3. Connect the jumpers on the SmartFusion2 Advanced Development Kit board as listed in Table 2. CAUTION: Switch OFF the power supply switch, SW7 while connecting the jumpers. Table 2 • SmartFusion2 Advanced Development Kit Jumper Settings Jumper Number Pin (from) Pin (to) J116, J353, J354, J54 1 2 J123 2 3 J124, J121, J32 1 2 Comments These are the default jumper settings of the SmartFusion2 Advanced Development Kit board. Ensure these jumpers are set accordingly. JTAG programming via FTDI 4. Connect the power supply to the J6 connector on the SmartFusion2 Advanced Development Kit board. 12 R e visio n 7 DG0471: SmartFusion2 SoC FPGA In-System Programming Using USB OTG Controller Interface - Libero SoC v11.6 Running the Demo Design 1. Download the demo design from: http://soc.microsemi.com/download/rsc/?f=m2s_dg0471_liberov11p6_df 2. Switch ON the SW7 power supply switch. 3. Start any serial terminal emulation program such as: – HyperTerminal – PuTTY – TeraTerm The configuration for the program is: – Baud Rate: 57600 – 8 Data bits – 1 Stop bit – No Parity – No Flow Control For information on configuring the serial terminal emulation programs, refer to the Configuring Serial Terminal Emulation Programs Tutorial. 4. Connect the USB cable Micro A end to the P1 connector of SmartFusion2 Advanced Development Kit board and other end to the USB mass storage device. Ensure to connect preformatted USB Flash drive to the SmartFusion2 device with the sample programming files provided in <download_folder>\sf2_isp_using_usb_interface_demo_df\sample_programming_files. 5. Launch the FlashPro software. 6. Click New Project. 7. In the New Project window, type the project name. Figure 6 • FlashPro New Project Revision 7 13 In-System Programming Using USB OTG Controller Interface 8. Click Browse and navigate to the location where you want to save the project. 9. Select Single device as the Programming mode. 10. Click OK to save the project. 11. Click Configure Device on the FlashPro GUI. 12. Click Browse and navigate to the location where the isp_demo.stp file is located and select the file. The default location is: <download_folder>\sf2_isp_using_usb_interface_demo_df\stapl_programming_file. The required programming file is selected and is ready to be programmed in the device. Figure 7 • 14 FlashPro Project Configured R e visio n 7 DG0471: SmartFusion2 SoC FPGA In-System Programming Using USB OTG Controller Interface - Libero SoC v11.6 13. Click PROGRAM to start programming the device. Wait until you get a message indicating that the program passed. ISP requires the SmartFusion2 device to be preprogrammed with the application code to activate the ISP service. Therefore, the SmartFusion2 device is preprogrammed with the isp_demo.stp using the FlashPro software. Figure 8 • FlashPro Program Passed – LEDs 4 to 7 (C26, A27, F26, D26) blinking in the board indicate that the SmartFusion2 device fabric is preprogrammed successfully. Revision 7 15 In-System Programming Using USB OTG Controller Interface On programming the SmartFusion2 device successfully using FlashPro, the serial terminal emulation program shows the initialization messages and ISP operation modes, as shown in Figure 9. Figure 9 • 16 ISP Operation Modes Selection R e visio n 7 DG0471: SmartFusion2 SoC FPGA In-System Programming Using USB OTG Controller Interface - Libero SoC v11.6 14. On selecting the operation mode, the files in the USB storage device are displayed, as shown in Figure 10. Note: Maximum of 10 files can be shown from the USB storage device. Figure 10 • Available Files in USB Mass Storage Device 15. Select the programming file from the listed files by its index to perform the selected ISP operation mode. Revision 7 17 In-System Programming Using USB OTG Controller Interface Authenticate Operation Mode To authenticate the data from fabenvm.spi, enter: 1. 0 to select Authenticate operation mode under Select ISP operational mode. 2. The corresponding index number to select fabenvm.spi programming file. On selecting the programming file, the application starts reading the programming file from USB mass storage device to execute the ISP operation mode. On completion of the ISP authentication, the serial terminal emulation program displays an operation success message. Figure 11 shows the operation success message. Figure 11 • ISP Authentication Results 3. 18 Press any key to continue for other ISP operation mode. If the USB storage device files are not displayed on serial terminal emulation program, press SW6 to reset the board. R e visio n 7 DG0471: SmartFusion2 SoC FPGA In-System Programming Using USB OTG Controller Interface - Libero SoC v11.6 Verify Operation Mode To verify the device FPGA fabric and eNVM contents, enter: 1. 2 to select Verify operation mode under Select ISP operation mode. 2. The corresponding index number to select isp_demo.spi programming file. On selecting the programming file, the application starts reading the programming file from USB mass storage device to execute the ISP operation mode. On completion of the ISP verification, the serial terminal emulation program displays an operation success message. Figure 12 shows the operation success message. Figure 12 • ISP Verification Results The verification operation demonstrated is for the isp_demo.stp file that is already running in the SmartFusion2 device. If any other .spi file is verified while the isp_demo.stp file is still running, that verification operation fails. Revision 7 19 In-System Programming Using USB OTG Controller Interface If the verification fails, the serial terminal emulation program displays an error message with an error code. Figure 13 shows an example error message. For more information on error codes, refer to the "Appendix 3: Error Codes"section on page 26. The programming files are at: <download_folder>\sf2_isp_using_usb_interface_demo_df\sample_programming_files. All of them do not pass the verification. Only the isp_demo.spi file passes the verification operation as it matches with the SmartFusion2 device contents (isp_demo.stp). The other programming files fail verification. Figure 13 • ISP Verification Failure Error Message 3. Press any key to continue for other ISP operation mode. If the USB storage device files are not displayed on the serial terminal emulation program, press SW6 to reset the board. 20 R e visio n 7 DG0471: SmartFusion2 SoC FPGA In-System Programming Using USB OTG Controller Interface - Libero SoC v11.6 Program Operation Mode To program the FPGA fabric and the eNVM of the SmartFusion2 device using the fabenvm.spi file, enter: 1. 1 to select Program operation mode under Select ISP operation mode. 2. The corresponding index number to select fabenvm.spi programming file. On selecting the programming file, the application starts reading the programming file from the USB mass storage device to execute the ISP operation mode. The application checks the data integrity of the selected programming file prior to perform the ISP program operation. After completing the programming operation, an internal reset is generated for the new design to take effect. Figure 14 shows selection of program operation mode for the fabenvm.spi programming file. Figure 14 • ISP Program Operation Mode Revision 7 21 In-System Programming Using USB OTG Controller Interface Checking if the Fabric is Programmed Successfully LEDs 0 to 3 (C28, B27, C27, E26) blinking in the board indicate that the fabric is programmed successfully. Checking if the eNVM is Programmed Successfully The serial terminal emulation program displays the success message as shown in Figure 15 if the eNVM is programmed successfully. Figure 15 • ISP Program Results 22 R e visio n 7 DG0471: SmartFusion2 SoC FPGA In-System Programming Using USB OTG Controller Interface - Libero SoC v11.6 Programming Results The result shown in Figure 15 on page 22 is for the fabenvm.spi file. Table 3 shows the possible results for ISP Program operation mode for sample programming files provided in folder <download_folder>\sf2_isp_using_usb_interface_demo_df\sample_programming_files. Not all.spi files listed in the Table 3 are demonstrated. Table 3 • ISP Programming Results *.spi Programming File Name eNVM Programming Result FPGA fabric Programming Result envmonly.spi The serial terminal emulation program shows successful NA eNVM program message fabonly.spi NA fabenvm.spi The serial terminal emulation program shows successful SmartFusion2 LEDs 0 to 3 (C28, B27, eNVM program message C27, E26) blinking SmartFusion2 LEDs 0 to 3 (C28, B27, C27, E26) blinks After successful ISP Program operation, the SmartFusion2 Advanced Development Kit board must be reprogrammed with the original isp_demo.stp file to try the ISP operation modes again. Known Issue After successful completion of the two-step IAP or ISP, LSRAM read and write access fails from the fabric path. This is a known silicon issue, which is documented in the ER0196- SmartFusion2 Device, Errata. The workaround for this problem is to reset the system after the IAP or ISP program operation. Microsemi recommends that this workaround can be implemented for any design, which accesses LSRAM after IAP or ISP. For more information about how to implement this workaround, refer to the "Appendix 6: Implementing Workaround to Access Fabric LSRAM after IAP or ISP Program Operation"section on page 34. The design example provided in this demonstration implements the workaround for accessing LSRAM after implementing the IAP or ISP program operation in the Libero software. The design files are available in the following location: <download_folder>\sf2_isp_using_usb_interface_demo_df\sample_programming_files\LSRAM_Workar ound Revision 7 23 In-System Programming Using USB OTG Controller Interface Appendix 1: Board Setup Through the USB to UART (FTDI) Interface using the USB A to Mini - B Cable Figure 16 • Board Setup when Through the USB to UART (FTDI) Interface using the USB A to Mini - B Cable 24 R e visio n 7 DG0471: SmartFusion2 SoC FPGA In-System Programming Using USB OTG Controller Interface - Libero SoC v11.6 Appendix 2: Jumper Locations B1 3 2 1 R338 R369 DS20 R364 R253 9 J124 J121 C604 J32 J60 19 2 20 J38 1 19 R162 R330 C596 R260 U34 U23 C1 H1 R255 C600 U25 TP3 TP7 TP20 TP4 R283 R282 R155 U59 C697 C696 J123 J29 TP35 U31 H40 10 J37 20 R161 J125 DS0 DS1 DS2 D7 C40 1 J36 C610 J28 C638 R267 DS16 U24 SW1 2 C332 B TP16 R151 R147 SW4 R304 TP12 J351 D9 C593 2 H1 DS21 SW3 R277 C698 J119 B SW2 A R307 R148 DS19 R279 R278 R276 B R306 C636 R305 C637 TP21 TP9 D8 DS3 DS4 DS5 DS7 DS6 R220 R222 R224 A A R366 R152 1 R272 C608 R149 C328 R363 R361 TP10 TP22 U32 C647 R310 DS18 1 Y11 R318 R362 R316 Y12 B DS17 R292 DS25 3 DS29 R354 R1216 R1217 8 7 6 5 4 R159 R158 R337 R47 R48 R308 C640 U5 R336 U7 U35 C645 C646 C644 C641 C642 A1 U3 R335 SW5 R314 C109 C150 C236 C235 C199 C159 C116 C465 C467 C460 C455 TP68 TP41 U13 A1 A1 U2 R150 C643 C648 R311 R309 A1 R346 2 1 J116 A DS24 C630 C119 C161 C233 C197 C118 C163 R213 R209 R266 U6 TP60 R210 TP53 C476 C562 R1213 C518 C468 C519 Y4 C371 TP74 R211 C153 C156 Y3 R1214 R1212 R1208 R1210 R1207 R1215 R1209 C554 C471 C530 C528 C526 C394 C521 TP66 A1 J353 R332 R351 R352 R355 R356 TP70 TP64 R217 C517 J118 TP73 C211 C210 C213 C212 C136 C135 C138 C137 C140 C139 C142 C141 C173 C172 C175 C174 C177 C176 C179 C178 C216 C215 C92 C91 C94 C93 C96 C95 C98 C378 C625 TP29 CON1 MH2 R353 R160 R977 R973 R974 D15 C382 TP27 C257 C246 R78 TP26 C463 C422 R375 R1211 C599 Y20 U4 TP77 C374 C703 C705 U1 J13 TP62 C671 C674 R294 C699 R289 A1 C704 C359 R378 DS23 3 2 6 TP11 DS22 R344 R345 J10 C113 C129 R54 R55 R69 TP49 C220 TP67 C362 TP56 R70 C360 TP58 C361 TP72 R286 L5 L6 U60 R288 J17 C624 R343 SW7 5 C691 J11 J12 J6 U58 TP17 R281 R280 R300 U26 U27 R808 U9 U11 C702 R840 R841 R842 R134 R131 C315 J23 R125 R133 U10 R126 C672 C701 TP28 C700 R130 R373 R374 U12 A1 R74R72 J18 R73 R71 J354 R143 R137 R139 R141 R138 J16 C324 C325 U49 C606 R396 TP1 R127 CR2 CR1 R136 C323 TP2 C316 5 C164 R298 1 P1 C605 R140 R142 DS26 C673 R111 R112 R293 R303 R75 C292 C330 C331 U37 J15 J21 C283 R81 R76 Y2 R156 R372 R114 C306 C282 R113 J4 4 R313 C692 J9 J5 J7 C484 R115 R110 R109 R108 R106 R107 C314 C313 R116 R117 R118 R119 R101 R102 R103 C255 C302 R97 C307 C308 C297 C295 J19 R270 R978 R975 R976 R1518 R50 C214 TP24 R46 J14 J20 TP71 TP46 J42 R301 J350 TP30 J8 TP48 C181 C148 R64 C183 R60 TP54 TP33 TP57 TP39 TP50 TP69 R58 C144 R59 C146 R331 TP42 TP44 TP76 R216 C102 C100 R42 TP40 R41 TP38 C103 TP36 TP51 C209 R40 C294 A1 C296 C89 C90 C305 C304 TP75 U8 R218 TP78 R100 TP15 R104 J22 R105 R92 R99 R91 R94 R79 C293 R93 R95 R96 R98 R121 R120 TP32 J54 TP31 R63 C626 C303 A1 A40 R290 R291 U28 L4 C926 R5484 R5483 R334 C1579 R333 D10 D14 D13 R327 R328 R326 U36 C1575 C1574 C1573 C1572 C1566 R199 R198 R197 R194 R193 R192 R177 DS28 J30 R839 MH1 U162 R179 R178 C623 L3 U17 Y6 U62 U19 CR3 R191 R190 R189 R188 R184 R183 R182 R181 J352 R1519 R295 C628 K1 K40 R257 R986 R984 R985 R983 DS11 DS12 DS13 DS14 DS8 DS9 DS10 CR4 U16 5 C351 1 J33 C592 X1 R196 U18 R163 C358 C357 B LED9 R164 R167 R168 R325 R169 C668 R170 C666 R166 C667 R165 R171 R329 R172 C670 TP23 TP14 R173 R174 R176 R175 B1 DS27 A C595 R243 J34 A1 SW6 B32 Figure 17 • SmartFusion2 Advanced Development Kit Silkscreen Top View Figure 17 shows the jumper locations in the Advanced Development Kit board: • Jumpers highlighted in red are set by default. • The location of the jumpers in Figure 17 is searchable. Revision 7 25 In-System Programming Using USB OTG Controller Interface Appendix 3: Error Codes Table 4 • Error Codes Define Error Code Description #define MSS_SYS_CHAINING_MISMATCH 1u Device contents mismatch #define MSS_SYS_UNEXPECTED_DATA_RECEIVED 2u Data is not supported #define MSS_SYS_INVALID_ENCRYPTION_KEY 3u Invalid encryption key #define MSS_SYS_INVALID_COMPONENT_HEADER 4u Invalid file header #define MSS_SYS_BACK_LEVEL_NOT_SATISFIED 5u corrupted /invalid bitstream #define MSS_SYS_DSN_BINDING_MISMATCH 7u corrupted /invalid bitstream #define MSS_SYS_ILLEGAL_COMPONENT_SEQUENCE 8u corrupted /invalid bitstream #define MSS_SYS_INSUFFICIENT_DEV_CAPABILITIES 9u Invalid Device capabilities #define MSS_SYS_INCORRECT_DEVICE_ID 10u Invalid Device id #define MSS_SYS_UNSUPPORTED_BITSTREAM_PROT_VER 11u bitstream is not supported #define MSS_SYS_VERIFY_NOT_PERMITTED_ON_BITSTR 12u Verification is not allowed for input bitstream #define MSS_SYS_ABORT 127u Operation aborted #define MSS_SYS_NVM_VERIFY_FAILED 129u eNVM verification failed #define MSS_SYS_DEVICE_SECURITY_PROTECTED 130u Device is secured #define MSS_SYS_PROGRAMMING_MODE_NOT_ENABLED 131u Programming mode is not enabled. 26 R e visio n 7 DG0471: SmartFusion2 SoC FPGA In-System Programming Using USB OTG Controller Interface - Libero SoC v11.6 Appendix 4: Generating .spi Programming File using Libero The following steps describe how to generate a .spi programming file using Libero: 1. Launch the Libero SoC software to open a Libero project for fabenvm.spi programming file. The Libero design file is provided in <download_folder>\sf2_isp_using_usb_interface_demo_df\sample_programming_file\fabric_and _envm. 2. Right-click Bitstream under Handoff Design for Production in the Design Flow tab, and click Export... from the context menu. Figure 18 • Configuring Export Bitstream Revision 7 27 In-System Programming Using USB OTG Controller Interface 3. On the Export Bitstream window, select the SPI file check box. Figure 19 • Export Programming File Options window 4. Click OK. 28 R e visio n 7 DG0471: SmartFusion2 SoC FPGA In-System Programming Using USB OTG Controller Interface - Libero SoC v11.6 5. Double-click Export Bitstream under Handoff Design for Production in the Design Flow tab to generate the .spi file (Figure 18 on page 27). Figure 20 shows the .spi file location in Messages tab. Figure 20 • .SPI File Location Revision 7 29 In-System Programming Using USB OTG Controller Interface Appendix 5: Hardware Project Implementation Settings The following hardware project settings are required to build the demo design: • Configuring the I/Os for Flash*Freeze Mode • Standby Clock Source Configuration • SoftConsole Project Generation Configuring the I/Os for Flash*Freeze Mode The Libero demo design configures M3_CLK to operate at 50 MHz, one UART interface (MMUART_0) for serial communication and USB OTG as mass storage class host. The FPGA fabric is not operational during Program or Verify operation as the device enters into Flash*Freeze (F*F). During F*F mode, the fabric and I/Os are not available. Therefore, the MMUART_0’s RXD and TXD ports are configured using the I/O Editor to be available during F*F mode, as shown Figure 21. The reset of OTG controller reset is driven by GPIO_3_OUT through fabric. This I/O is configured to hold the last value during F*F mode.The user has to Commit and Check the settings from the File menu after configuring the ports. Figure 21 • Configuring MMUART_0 Ports to be Available During F*F 30 R e visio n 7 DG0471: SmartFusion2 SoC FPGA In-System Programming Using USB OTG Controller Interface - Libero SoC v11.6 Standby Clock Source Configuration The standby clock source for the microcontroller subsystem (MSS) in F*F mode is configured to On-chip 50 MHz RC Oscillator using the Flash*Freeze Hardware Settings dialog box in the Libero SoC software, as shown in Figure 22. A higher MSS clock frequency is required in F*F mode to meet the MMUART baud rate requirements. Figure 22 • Flash*Freeze Hardware Settings Dialog Box Revision 7 31 In-System Programming Using USB OTG Controller Interface SoftConsole Project Generation The firmware and SoftConsole project workspace can be generated by checking the Create Project and selecting a Software IDE option in Libero project, as shown in Figure 23. Figure 23 • Export Firmware Options On successful firmware generation, the firmware and SoftConsole folders are generated at <download_folder>\sf2_isp_using_usb_interface_demo_df\libero as specified in Location field of Export Firmware dialog box, as shown in Figure 23. 32 R e visio n 7 DG0471: SmartFusion2 SoC FPGA In-System Programming Using USB OTG Controller Interface - Libero SoC v11.6 For software modifications, open the SoftConsole Project workspace (located at <download_folder>\sf2_isp_using_usb_interface_demo_df\libero\SoftConsole\demo_MSS_CM3) using SoftConsole IDE v3.4 SP1. Figure 24 shows SoftConsole Project workspace. Figure 24 • SoftConsole Project Workspace The SoftConsole workspace consists three projects. • demo_MSS_CM3_app: This project displays the available programming files from USB mass storage device. This project receives the bitstream from the host PC through UART interface and invokes the system controller programming services. • demo_MSS_CM3_boot_loader: This project implements the remapping of the eSRAM to Cortex-M3 processor code space after copying the ISP code to eSARM from eNVM. • demo_MSS_CM3_hw_platform: This project contains all the firmware and hardware abstraction layers that correspond to the hardware design. This project is configured as a library and is referenced by demo_MSS_CM3_app and demo_MSS_CM3_boot_loader application projects. The contents of this folder get over-written every time the firmware is exported as shown in Figure 23 on page 32. Revision 7 33 In-System Programming Using USB OTG Controller Interface Appendix 6: Implementing Workaround to Access Fabric LSRAM after IAP or ISP Program Operation The LSRAM write and read accesses are denied after implementing IAP or ISP program operation. The workaround for this problem is to apply System Reset after IAP or ISP program operation. Changes Required in Libero Design Option 1: Creating SmartDesign The following steps describe how to apply System Reset: 1. Choose File > New > SmartDesign. 2. Enter Name as Dev_Restart_after_ISP_blk in the Create New SmartDesign window. 3. Navigate to Libero Catalog to open Tamper Macro. a. Drag-and-drop the Tamper Macro available in Libero Catalog to the Dev_Restart_after_ISP_blk SmartDesign canvas, as shown in Figure 25. Figure 25 • Tamper Macro b. Select the Enable RESET Function check box in the Configuring Tamper 2_0 window. c. Click OK. The System Reset is enabled. 34 R e visio n 7 DG0471: SmartFusion2 SoC FPGA In-System Programming Using USB OTG Controller Interface - Libero SoC v11.6 Figure 26 • Tamper Macro Configuration Window Figure 27 shows the TAMPER2_0 macro after configuration. Figure 27 • Tamper Macro Revision 7 35 In-System Programming Using USB OTG Controller Interface 4. Instantiate the FSM Module provided in the design files. This FSM Logic performs 3 consecutive address writes to the Two-Port Large SRAM with the known data pattern and then reads back data from those 3 consecutive address locations to compare. If the read back data pattern does NOT match with the written data pattern, then the FSM asserts the RESET_N input to Tamper Macro, which in turn causes a System Reset. If the read back data pattern matches with the written data pattern, then the FSM does not do anything. Follow the steps to add the FSM logic to the PCIe IAP design, a. Choose File > Import > HDL Source Files. b. Browse to the following Ram_interface.v file location in the design files folder. <download_folder>\sf2_isp_using_usb_interface_demo_df\Sourcefiles c. Click the Dev_Restart_after_ISP_blk tab and drag-and-drop the Ram_interface component from the Design Hierarchy to the Dev_Restart_after_ISP_blk SmartDesign canvas. Figure 28 shows the Ram_interface component. Figure 28 • Ram_interafce FSM Component After completing the IAP programming, the System Controller asserts POWER_ON_RESET_n to FPGA fabric. This triggers the RESETn signal and initiates the state machine in the FSM module. 5. Drag-and-drop the Two-Port Large SRAM (TPSRAM) available in the Libero Catalog to the Dev_Restart_after_ISP_blk SmartDesign canvas. Configure the TPSRAM with the following settings: – – – 36 Write Port • Depth: 64 • Width: 8 Read Port • Depth: 64 • Width: 8 Select Check REN check box R e visio n 7 DG0471: SmartFusion2 SoC FPGA In-System Programming Using USB OTG Controller Interface - Libero SoC v11.6 Figure 29 • Two-Port SRAM Configurator Window Revision 7 37 In-System Programming Using USB OTG Controller Interface 6. Make the connections for Tamper Macro, FSM, and TPSRAM, as shown in Figure 30. Figure 30 • Dev_Restart_after_ISP_blk SmartDesign 7. Click the demo_top tab and drag-and-drop the Dev_Restart_after_ISP_blk component from the Design Hierarchy to the demo_top SmartDesign canvas. 8. Make the connection as shown in Figure 31 and generate demo_top SmartDesign. This completes the implementation of the workaround. Figure 31 • demo_top SmartDesign Note: This workaround is applicable for v11.5 software release or later, and must be implemented in the Libero design, which is used to generate the .spi programming file. Older versions of Libero might prune Tamper Macro during Synthesis. To avoid pruning, one of the recommended options is to promote the DETECT_ATTEMPT signal of Tamper Macro to the top-level. 38 R e visio n 7 DG0471: SmartFusion2 SoC FPGA In-System Programming Using USB OTG Controller Interface - Libero SoC v11.6 Option 2: Importing the .cxf file in Libero Project Another option to implement this workaround is to import the .cxf file for SmartDesign Dev_Restart_after_ISP_blk. This .cxf file is provided with the design files and it has all the component instantiations and connections mentioned in "Option 1: Creating SmartDesign"section on page 34 from step 1 to 6. The following steps describe how to import .cxf file to Libero project: 1. Choose File > Import > Others. 2. Browse to the following Dev_Restart_after_ISP_blk.cxf file location in the design files folder. <download_folder>\sf2_isp_using_usb_interface_demo_df\sample_programming_files\LSRAM_ Workaround\component\work\Dev_Restart_after_ISP_blk 3. Browse to the following Ram_interface.v file location in the design files folder. <download_folder>\sf2_isp_using_usb_interface_demo_df\Sourcefiles 4. Repeat Step 7 and Step 8 to instantiate Dev_Restart_after_ISP_blk in demo_top SmartDesign. Revision 7 39 List of Changes The following table shows the important changes made in this document for each revision. Date Changes Page Revision 7 (October 2015) Updated the design files in the document for Libero v11.6 software release (SAR 72882). NA Revision 6 (June 2015) Updated the design files in the document for Libero v11.5 software release (SAR 68427). NA Revision 5 (March 2015) Updated the document for Libero v11.5 software release changes (SAR 65133). NA Revision 4 (August 2014) Updated the document for Libero v11.4 software release (SAR 59740). NA Revision 3 (May 2014) Updated the document for Libero v11.3 software release (SAR 56662). NA Revision 2 (December 2013) Updated "Description" section (SAR 53451). Revision 1 (November 2013) Updated the document for Libero v11.2 software release (SAR 52963). NA Revision 0 (October 2013) Initial release. NA Revision 7 8 40 Product Support Microsemi SoC Products Group backs its products with various support services, including Customer Service, Customer Technical Support Center, a website, electronic mail, and worldwide sales offices. This appendix contains information about contacting Microsemi SoC Products Group and using these support services. Customer Service Contact Customer Service for non-technical product support, such as product pricing, product upgrades, update information, order status, and authorization. From North America, call 800.262.1060 From the rest of the world, call 650.318.4460 Fax, from anywhere in the world, 408.643.6913 Customer Technical Support Center Microsemi SoC Products Group staffs its Customer Technical Support Center with highly skilled engineers who can help answer your hardware, software, and design questions about Microsemi SoC Products. The Customer Technical Support Center spends a great deal of time creating application notes, answers to common design cycle questions, documentation of known issues, and various FAQs. So, before you contact us, please visit our online resources. It is very likely we have already answered your questions. Technical Support For Microsemi SoC Products Support, visit http://www.microsemi.com/products/fpga-soc/design-support/fpga-soc-support Website You can browse a variety of technical and non-technical information on the SoC home page, at http://www.microsemi.com/products/fpga-soc/fpga-and-soc. Contacting the Customer Technical Support Center Highly skilled engineers staff the Technical Support Center. The Technical Support Center can be contacted by email or through the Microsemi SoC Products Group website. Email You can communicate your technical questions to our email address and receive answers back by email, fax, or phone. Also, if you have design problems, you can email your design files to receive assistance. We constantly monitor the email account throughout the day. When sending your request to us, please be sure to include your full name, company name, and your contact information for efficient processing of your request. The technical support email address is [email protected]. Revision 7 41 Product Support My Cases Microsemi SoC Products Group customers may submit and track technical cases online by going to My Cases. Outside the U.S. Customers needing assistance outside the US time zones can either contact technical support via email ([email protected]) or contact a local sales office. Visit About Us for sales office listings and corporate contacts. ITAR Technical Support For technical support on RH and RT FPGAs that are regulated by International Traffic in Arms Regulations (ITAR), contact us via [email protected]. Alternatively, within My Cases, select Yes in the ITAR drop-down list. For a complete list of ITAR-regulated Microsemi FPGAs, visit the ITAR web page. 42 R e visio n 7 Microsemi Corporation (Nasdaq: MSCC) offers a comprehensive portfolio of semiconductor and system solutions for communications, defense & security, aerospace and industrial markets. Products include high-performance and radiation-hardened analog mixed-signal integrated circuits, FPGAs, SoCs and ASICs; power management products; timing and synchronization devices and precise time solutions, setting the world's standard for time; voice processing devices; RF solutions; discrete components; security technologies and scalable anti-tamper products; Ethernet solutions; Power-over-Ethernet ICs and midspans; as well as custom design capabilities and services. Microsemi is headquartered in Aliso Viejo, Calif., and has approximately 3,600 employees globally. Learn more at www.microsemi.com. Microsemi Corporate Headquarters One Enterprise, Aliso Viejo, CA 92656 USA Within the USA: +1 (800) 713-4113 Outside the USA: +1 (949) 380-6100 Sales: +1 (949) 380-6136 Fax: +1 (949) 215-4996 E-mail: [email protected] © 2015 Microsemi Corporation. All rights reserved. Microsemi and the Microsemi logo are trademarks of Microsemi Corporation. All other trademarks and service marks are the property of their respective owners. Microsemi makes no warranty, representation, or guarantee regarding the information contained herein or the suitability of its products and services for any particular purpose, nor does Microsemi assume any liability whatsoever arising out of the application or use of any product or circuit. The products sold hereunder and any other products sold by Microsemi have been subject to limited testing and should not be used in conjunction with mission-critical equipment or applications. Any performance specifications are believed to be reliable but are not verified, and Buyer must conduct and complete all performance and other testing of the products, alone and together with, or installed in, any end-products. Buyer shall not rely on any data and performance specifications or parameters provided by Microsemi. It is the Buyer's responsibility to independently determine suitability of any products and to test and verify the same. The information provided by Microsemi hereunder is provided "as is, where is" and with all faults, and the entire risk associated with such information is entirely with the Buyer. Microsemi does not grant, explicitly or implicitly, to any party any patent rights, licenses, or any other IP rights, whether with regard to such information itself or anything described by such information. Information provided in this document is proprietary to Microsemi, and Microsemi reserves the right to make any changes to the information in this document or to any products and services at any time without notice. 50200471-7/10-15