SmartFusion2 PCIe Data Plane Demo using MSS HPDMA and SMC_FIC - Libero SoC v11.7 DG0535 Demo Guide Contents 1 Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.1 1.2 1.3 Purpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Intended Audience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2 SmartFusion2 Data Plane Demo using MSS HPDMA and SMC_FIC . . . . . . . . . . . . 6 2.1 2.2 2.3 2.4 2.5 2.6 2.7 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Design Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Demo Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.3.2 Demo Design Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.3.3 Demo Design Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.3.3.1 Host PC Memory to eSRAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.3.3.2 eSRAM to Host PC Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Throughput Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Setting Up the Demo Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.5.1 Jumper Settings for SmartFusion2 Advanced Development Kit . . . . . . . . . . . . . . . . . . . . . . . 11 2.5.2 Programming the Device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.5.3 Connecting the Kit to the Host PC PCIe Slot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.5.4 Drivers Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.5.5 PCIe_Demo Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Running the Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 3 Appendix: Register Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 4 Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 5 Product Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 5.1 5.2 5.3 5.4 5.5 5.6 Customer Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Customer Technical Support Center . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Technical Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Website . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Contacting the Customer Technical Support Center . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.5.1 Email . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.5.2 My Cases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.5.3 Outside the U.S. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ITAR Technical Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Revision 5 38 38 38 38 38 38 38 39 39 2 Figures Figure 1. Figure 2. Figure 3. Figure 4. Figure 5. Figure 6. Figure 7. Figure 8. Figure 9. Figure 10. Figure 11. Figure 12. Figure 13. Figure 14. Figure 15. Figure 16. Figure 17. Figure 18. Figure 19. Figure 20. Figure 21. Figure 22. Figure 23. Figure 24. Figure 25. Figure 26. Figure 27. Figure 28. Figure 29. Top-Level Structure of Demo Design Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 PCIe Data Plane Demo Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Device Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 FlashPro- New Project Dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 FlashPro Project Configured . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 FlashPro Programming Passed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 SmartFusion2 Advanced Development Kit Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Device Manager - PCIe Device Detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Scan for Hardware Changes Option in the Device Manager Window . . . . . . . . . . . . . . . . . . . . . . 16 Command Prompt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Jungo Driver Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Windows Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Completed Successfully Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 GUI Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Successful Installation of GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Device Manager - PCIe Device Detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Scan for Hardware Changes Option in the Device Manager Window . . . . . . . . . . . . . . . . . . . . . . 22 PCIe_Demo Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 PCIe Device Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 LED Options and DIP Switch Positions in Demo Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Interrupt Counter Field in PCIe_Demo Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 PCIe Configuration Space Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Read and Write to Scratchpad Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Fabric DMA Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 DMA Transactions between Host PC Memory and eSRAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Throughput in DMA Transactions from Host PC to eSRAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Throughput in the DMA Transactions from the Host PC to eSRAM . . . . . . . . . . . . . . . . . . . . . . . . 32 Throughput in the DMA Transactions from eSRAM to the Host PC . . . . . . . . . . . . . . . . . . . . . . . . 33 Throughput in the DMA Transactions from eSRAM to the Host PC . . . . . . . . . . . . . . . . . . . . . . . . 34 Revision 5 3 Tables Table 1. Table 2. Table 3. Table 4. Design Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 SmartFusion2 Advanced Development Kit Jumper Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Throughput Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Register Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Revision 5 4 Preface 1 Preface 1.1 Purpose This demo is for SmartFusion®2 system-on-chip (SoC) field programmable gate array (FPGA) devices. It provides instructions on how to use the corresponding reference design. 1.2 Intended Audience This demo guide is intended for: • • • 1.3 FPGA designers Embedded designers System-level designers References 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 The following references are used in this document: • • • • SmartFusion2 and IGLOO2 High Speed Serial Interface Configuration UG0331: SmartFusion2 Microcontroller Subsystem User Guide UG0447: SmartFusion2 and IGLOO2 High Speed Serial Interfaces User Guide UG0456: SmartFusion2 SoC FPGA PCIe Control Plane Demo User Guide Revision 5 5 SmartFusion2 Data Plane Demo using MSS HPDMA and SMC_FIC 2 SmartFusion2 Data Plane Demo using MSS HPDMA and SMC_FIC 2.1 Introduction This demo describes the usage of the embedded features of the SmartFusion2 devices such as peripheral component interconnect express (PCIe) controller, microcontroller subsystem (MSS) high-performance direct memory access (HPDMA) controller and soft memory controller - fabric interface controller (SMC_FIC). The demo uses all of these embedded features and limited FPGA resources. The objective of this demo is to show ease-of-use, optimized resource utilization and low power. In this demo, the PCIe advanced extensible interface (AXI) is accessed through the SMC_FIC AXI interface. This demo shows the performance of the PCIe and HPDMA through SMC_FIC of the SmartFusion2 device. An application, PCIe_Demo that runs in the host PC is provided for setting up and initiating the DMA transactions from the SmartFusion2 PCIe endpoint to the host PC device. Drivers for connecting the host PC to the SmartFusion2 PCIe endpoint are provided as part of the demo deliverables. Microsemi provides three different PCIe data plane demos for SmartFusion2 devices: • • • DG0501: SmartFusion2 PCIe MSS HPDMA Demo Guide: This demo shows the low throughput data transfers between PCIe and double data rate (DDR). PCIe data plane demo using MSS HPDMA and SMC_FIC (current demo): This demo shows the medium throughput data transfers between PCIe and embedded static random access memory (eSRAM). SmartFusion2 and IGLOO2 PCIe Data Plane Demo using 2 Channel Fabric DMA Demo Guide: This demo shows the high throughput data transfers between PCIe and large SRAM (LSRAM). The high-speed serial interface (SERDESIF) available in the SmartFusion2 devices provides a fully hardened PCIe endpoint implementation and is compliant to the PCIe Base Specification Revision 2.0 1.1, and 1.0. For more information, see the UG0447: SmartFusion2 SoC FPGA High Speed Serial Interfaces User Guide. For a tutorial design on how to develop and use the PCIe endpoint including the tools flow and simulation, see the UG0456: SmartFusion2 SoC FPGA PCIe Control Plane Demo Users Guide. Revision 5 6 SmartFusion2 Data Plane Demo using MSS HPDMA and SMC_FIC 2.2 Design Requirements The following table lists the hardware and software design requirements. Table 1 • Design Requirements Design Requirements Description Hardware Requirements SmartFusion2 Advanced Development Kit: • FlashPro5 programmer • 12 V adapter • PCI Edge Card Ribbon Cable Rev B or later Host PC or Laptop Any 64-bit Windows Operating System Software Requirements Libero® System-on-Chip (SoC) software v11.7 SoftConsole v3.4 SP1* FlashPro programming software v11.7 PCIe_Demo application 13.1 or later Note: *For this demo guide, SoftConsole v3.4 SP1 is used. For using SoftConsole v4.0, see the TU0546: SoftConsole v4.0 and Libero SoC v11.7 Tutorial. 2.3 Demo Design 2.3.1 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_dg0535_liberov11p7_df The demo design files include: • • • • Drivers_64bit OS Libero project Programming files Readme.txt file Figure 1 shows the top-level structure of the design files. For more details, see the readme.txt file. Figure 1 • Top-Level Structure of Demo Design Files GRZQORDGBIROGHU! 06B3&,HB066+3'0$B60&),&B') 'ULYHUVBELW26 /,EHUR3URMHFW 3URJUDPPLQJ)LOH 5HDGPHW[W Revision 5 7 SmartFusion2 Data Plane Demo using MSS HPDMA and SMC_FIC Figure 2 • PCIe Data Plane Demo Block Diagram /('V H65$0 &RUWH[0 *3,2 $3%B 6ZLWFKHV $+%%XV0DWUL[ +3'0$ ''5 %ULGJH ),&B $+% 60&B),& $;,WR $+% $;, +RVW3& 066 0 6 0 $;, 6 0 6 6HULDO&RQWUROOHU3&,H[*(1 3&,HB,QWHUUXSW 3XVK %XWWRQ 6PDUW)XVLRQ 3DWKEHWZHHQH65$0DQG3&,( 3DWKIURP+RVW3&WRH65$0UHJLVWHUV Figure 2 shows the demo-design. The PCIe core in the SmartFusion2 devices supports both AXI and AMBA® high-performance bus (AHB) master and slave interfaces. This demo design uses the AXI master and slave interfaces to achieve maximum bandwidth. The PCIe_Demo application on the host PC initiates the DMA transfers and the embedded PCIe core in the SmartFusion2 device initiates the AXI transactions through the AXI master interface to the AXI to AHB logic in the FPGA fabric. The AXI to AHB logic initiates AHB transactions to embedded SRAM (eSRAM) through FIC_0 (the green line in Figure 2 shows this path). The firmware running on the ARM® Cortex®-M3 processor reads the registers in eSRAM and initializes the HPDMA controller depending on the type of DMA transfer. In this demo, FIC_0 interface is used only for configuring registers in eSRAM for initiating HPDMA. The PCIe AXI slave interface is connected to SMC_FIC AXI interface. The HPDMA accesses PCIe through the SMC_FIC and performs the DMA transactions to eSRAM (the red line in Figure 2 shows this path). In this demo, all data transfers occur through the AXI based SMC_FIC interface. Note: • • The SMC_FIC AXI interface supports only WRAP type of Read burst transactions. The fabric logic converts these WRAP type transactions into INCR type transactions as the PCIe AXI interface supports only INCR type of burst transfers. The transaction addresses must be 32 byte aligned. Revision 5 8 SmartFusion2 Data Plane Demo using MSS HPDMA and SMC_FIC In this demo design, the following configurations are done: • • • The SERDES_IF_0 block in the SmartFusion2 device is configured for PCIe 2.0, x4 lanes and Gen2 rate. BAR0 and BAR1 are configured in 32-bit memory mapped memory mode. The AXI master window 0 is enabled and configured to map the BAR0 memory address space to MSS general purpose input output (GPIO) address space to control the MSS GPIOs. The AXI master window 1 is enabled and configured to map the BAR1 memory address space to eSRAM address space to perform read and write operations from the PCIe interface. The AXI slave window 0 is enabled and configured to map the SmartFusion2 local address space to the host PC address space. MSS GPIO block is enabled and configured as: • GPIO_0 to GPIO_7 as outputs and connected to LEDs • GPIO_8 to GPIO_11 as inputs and connected to DIP switches The PCIe AXI interface clock and the Cortex-M3 processor clock are configured to run at 75 MHz. 2.3.2 Demo Design Features • • • • • • • • • 2.3.3 DMA data transfers between the host PC memory and the eSRAM block. Throughput for every DMA data transfer. Enables continuous DMA transfers for observing throughput variations. Displays the PCIe link enable or disable, negotiated link width, and the link speed on the PCIe_Demo application. Displays the position of DIP Switches on the SmartFusion2 Advanced Development Kit board on the PCIe_Demo application. Displays the PCIe configuration space on the PCIe_Demo application. Controls LEDs on the board according to the command from the PCIe_Demo application. Enables read and write operations to scratchpad register in the FPGA fabric. Interrupts the host PC, when the Push button is pressed. The PCIe_Demo application displays the count value of the number of interrupts sent from the board. Demo Design Description This demo supports the following data transfers: • • Host PC Memory to eSRAM eSRAM to Host PC Memory 2.3.3.1 Host PC Memory to eSRAM A data transfer from PC memory to the eSRAM block happens in the following sequence: 1. 2. 3. 4. 5. 6. 7. 8. 9. HPDMA is setup over the PCIe link based on the settings in the GUI. HPDMA initiates AHB read transactions to the DDR bridge. The DDR bridge converts these AHB read transactions into AXI read transactions (32-byte burst) to the PCIe AXI interface. The PCIe core sends a memory read (MRd) transaction layer packets (TLP) to the host PC. The host PC returns with a completion with data (CplD) TLP to the PCIe link. This return data completes the AXI read initiated by DDR bridge. The DDR bridge stores this data into read buffer. The DDR bridge returns this buffered data to HPDMA. The return data completes the AHB read initiated by HPDMA controller. HPDMA writes the return data to eSRAM. HPDMA repeats this process until the transfer size set in the host PC GUI is completed. Revision 5 9 SmartFusion2 Data Plane Demo using MSS HPDMA and SMC_FIC 2.3.3.2 eSRAM to Host PC Memory A data transfer from the eSRAM to PC memory happens in the following sequence: 1. 2. 3. 4. 5. 6. 2.4 HPDMA is setup over the PCIe link based on the settings in the GUI. HPDMA reads the data from eSRAM by initiating an AHB read transaction to eSRAM. The data is written to the PCIe core as an AHB write transaction through the DDR bridge. The DDR bridge buffers up to 32 bytes of these write transactions. The DDR bridge initiates an AXI write transaction (32 byte burst) to the PCIe AXI interface. The PCIe core sends a memory write (MWr) TLP to the host PC. HPDMA repeats this process until the transfer size set in the host PC GUI is completed. Throughput Calculation This demo uses MSS timer to measure the throughput of DMA transfers. The throughput measured includes all of the overhead of the AXI, PCIe, and DMA controller transactions. The procedure for measuring throughput is: 1. 2. 3. 4. 5. Setup the DMA controller for the data transfer. Start the MSS timer and the DMA controller. Initiate data transfer for the requested number of bytes. Wait until DMA transfer is completed. Record the number of clock cycles consumed for steps 2-4. To arrive at a realistic system performance, the throughput calculation takes into account all the overheads during a transfer. The throughput formula is as shown below: Throughput = Transfer Size (Bytes) / (Number of clock cycles taken for a transfer * Clock Period) EQ 1 Revision 5 10 SmartFusion2 Data Plane Demo using MSS HPDMA and SMC_FIC 2.5 Setting Up the Demo Design 2.5.1 Jumper Settings for SmartFusion2 Advanced Development Kit 1. Connect the host PC to the J33 Connector using the USB A to mini-B cable. The USB to UART bridge drivers are automatically detected. Verify, if the detection is made in the device manager as shown in Figure 3. Figure 3 • Device Manager 2. Connect the jumpers on the SmartFusion2 Advanced Development Kit, as shown in Table 2. CAUTION: While making the jumper connections, the power supply switch SW7 must be switched Off. Table 2 • SmartFusion2 Advanced Development Kit Jumper Settings Jumper Pin (From) Pin (To) Comments J116, J353, J354, J54 1 2 Default J123 2 3 Default J124, J121, J32 1 2 JTAG programming via FTDI 3. 4. Connect the power supply to the J42 connector. Switch on the power supply switch, SW7. Revision 5 11 SmartFusion2 Data Plane Demo using MSS HPDMA and SMC_FIC 2.5.2 Programming the Device Download the demo design from: http://soc.microsemi.com/download/rsc/?f=m2s_dg0535_liberov11p7_df 1. 2. 3. Launch the FlashPro software. Click New Project. Figure 4 shows the FlashPro - New Project dialog. In the New Project dialog, enter the project name. Figure 4 • FlashPro- New Project Dialog 4. 5. 6. 7. 8. 9. Click Browse and navigate to the location where it is required to save the project. Select Single device as the Programming mode. Click OK to save the project. Click Configure Device. Click Browse and navigate to the location where the PCIe_HPDMA_SMCFIC_top.stp file is located and select the file. The default location is: <download_folder>\M2S_PCIe_MSSHPDMA_SMCFIC_DF\ProgrammingFile\ Click Open. The required programming file is selected and is ready to be programmed in the device. Revision 5 12 SmartFusion2 Data Plane Demo using MSS HPDMA and SMC_FIC Figure 5 • FlashPro Project Configured 10. Click PROGRAM to start programming the device. Wait until you get a message indicating that the program is passed. Figure 6 • FlashPro Programming Passed Revision 5 13 SmartFusion2 Data Plane Demo using MSS HPDMA and SMC_FIC 2.5.3 Connecting the Kit to the Host PC PCIe Slot Use the following steps to connect the kit to the host PC PCIe slot: 1. After successful programming, power off the SmartFusion2 Advanced Development Kit and shut down the host PC. 2. Connect the CON1 - PCIe Edge connector of the SmartFusion2 Advanced Development Kit to the host PC's PCIe slot through the PCI Edge Card Ribbon Cable. Note: Ensure that the host PC is switched off when plugging the PCIe connector cable to the PCIe slot. Figure 7 shows the board setup for the host PC in which SmartFusion2 Advanced Development Kit is connected to the host PC PCIe slot. Figure 7 • SmartFusion2 Advanced Development Kit Setup Revision 5 14 SmartFusion2 Data Plane Demo using MSS HPDMA and SMC_FIC 3. 4. Switch on the power supply switch, SW7. Power on the host PC and check the Device Manager of the host PC for PCIe Device. Figure 8 shows the Device Manager window. Figure 8 • Device Manager - PCIe Device Detection Revision 5 15 SmartFusion2 Data Plane Demo using MSS HPDMA and SMC_FIC 5. If the device is not detected, power cycle the SmartFusion2 Advanced Development Kit and click scan for hardware changes option in the Device Manager window. Figure 9 shows the scan for hardware changes option in the Device Manager. Figure 9 • Scan for Hardware Changes Option in the Device Manager Window Note: If the device is still not detected, check whether or not the BIOS version in the host PC is the latest, and the PCIe is enabled in the host PC BIOS. 2.5.4 Drivers Installation The PCIe Demo uses a driver framework provided by Jungo WinDriverPro. To install the PCIe drivers on the host PC for SmartFusion2 Advanced Development Kit, run the following steps: 1. Extract the PCIe_Demo.rar to C:\ drive. The PCIe_Demo.rar is located in the provided design files: M2S_PCIe_MSSHPDMA_SMCFIC_DF\Drivers_64bitOS\ PCIe_Demo.rar 2. Run the batch file C:\PCIe_Demo\DriverInstall\Jungo_KP_install.bat to install the PCIe drivers for the SmartFusion2 device. Note: Installing these drivers require host PC Administration rights. Revision 5 16 SmartFusion2 Data Plane Demo using MSS HPDMA and SMC_FIC 3. To run the batch file C:\PCIe_Demo\DriverInstall\Jungo_KP_install.bat, open command prompt and select Run as administrator, as shown in Figure 10. Figure 10 • Command Prompt 4. Navigate to C:\ Drive and execute Jungo_KP_install.bat in command prompt and press Enter. A Windows Security dialog box is displayed, as shown in Figure 11. Click Install. Figure 11 • Jungo Driver Installation Revision 5 17 SmartFusion2 Data Plane Demo using MSS HPDMA and SMC_FIC 5. If the Windows Security dialog box appears asking whether to install or not, click Install this driver software anyway, as shown in Figure 12. Figure 12 • Windows Security A message SUCCESS install: completed successfully is displayed, as shown in Figure 13. Figure 13 • Completed Successfully Message Revision 5 18 SmartFusion2 Data Plane Demo using MSS HPDMA and SMC_FIC 2.5.5 PCIe_Demo Application The PCIe_Demo application is a simple graphic user interface that runs on the host PC to communicate with the SmartFusion2 PCIe endpoint device. It provides PCIe link status, driver information and demo controls. The PCIe_Demo application invokes the PCIe driver installed on the host PC and provides commands to the driver according to the selection made. To install the GUI, use the following steps: 1. 2. 3. Download the PCIe demo GUI installer from http://soc.microsemi.com/download/rsc/?f=PCIe_Demo_GUI_Installer Extract the PCIe_Demo_GUI_Installer.rar. Double-click the setup.exe in the provided GUI installation (PCIe_Demo_GUI_Installer/setup.exe). Apply default options as shown in Figure 14. Figure 14 • GUI Installation Revision 5 19 SmartFusion2 Data Plane Demo using MSS HPDMA and SMC_FIC 4. Click Next and Finish to complete the installation. Figure 15 shows the Successful GUI Installation window. Figure 15 • Successful Installation of GUI 5. 6. 7. Shutdown the host PC. Power cycle the SmartFusion2 Advanced Development Kit board. Restart the host PC. Revision 5 20 SmartFusion2 Data Plane Demo using MSS HPDMA and SMC_FIC 2.6 Running the Design 1. Check the host PC Device Manager for the drivers. Figure 16 shows the Device Manager window highlighting the Jungo drivers installed. Figure 16 • Device Manager - PCIe Device Detection Revision 5 21 SmartFusion2 Data Plane Demo using MSS HPDMA and SMC_FIC 2. If the device is not detected, power cycle the SmartFusion2 Advanced Development Kit and click scan for hardware changes in the Device Manager window. Figure 17 • Scan for Hardware Changes Option in the Device Manager Window Note: If a warning appears on the DEVICE or WinDriver in the Device Manager window, uninstall the drivers and start from Step 1 of driver installation. Revision 5 22 SmartFusion2 Data Plane Demo using MSS HPDMA and SMC_FIC 3. Invoke the PCIe_Demo application from ALL Programs > PCIe Demo > PCIe Demo GUI. Figure 18 shows the PCIe_Demo launch window. Figure 18 • PCIe_Demo Application Revision 5 23 SmartFusion2 Data Plane Demo using MSS HPDMA and SMC_FIC 4. Click Connect at top right corner of the PCIe_Demo application. The application detects and displays the connected kit, demo design and PCIe link. Figure 19 shows the sample messages after the connection is established. Figure 19 • PCIe Device Information Revision 5 24 SmartFusion2 Data Plane Demo using MSS HPDMA and SMC_FIC 5. Click Demo Controls to display the LEDs options and DIP switch positions. Figure 20 shows the LED options and DIP switch positions in Demo Controls. Figure 20 • LED Options and DIP Switch Positions in Demo Controls 6. 7. 8. 9. Click LEDs to switch ON or OFF the LEDs on the board. Click Start LED ON/OFF Walk to blink the LEDs on the board. Click Stop LED ON/OFF Walk to stop the LEDs blinking. Change the DIP switch positions on the board and observe the same reflected in the switches of the Switch Module of the PCIe_Demo application. 10. Click Enable Interrupt Session to enable the PCIe interrupt. Revision 5 25 SmartFusion2 Data Plane Demo using MSS HPDMA and SMC_FIC 11. Press the push button, SW1 on the SmartFusion2 Advanced Development Kit board. Observe the interrupt count on the Interrupt Counter field in the PCIe_Demo application. Figure 21 shows the Interrupt Counter field in PCIe_Demo application. Figure 21 • Interrupt Counter Field in PCIe_Demo Application 12. Click Clear/Disable Interrupts to clear or disable the PCIe interrupts. Revision 5 26 SmartFusion2 Data Plane Demo using MSS HPDMA and SMC_FIC 13. Click Config Space to see the details about the PCIe configuration space. Figure 22 shows the PCIe configuration space details. Figure 22 • PCIe Configuration Space Details Revision 5 27 SmartFusion2 Data Plane Demo using MSS HPDMA and SMC_FIC 14. Click PCIe R/W to execute read and write to a 32-bit scratchpad register through BAR1 space. Figure 23 shows the PCIe R/W panel. Figure 23 • Read and Write to Scratchpad Register 15. Click DMA_SMC_FIC to run the DMA operations. Two types of DMA transactions are possible: • PC Memory to eSRAM • eSRAM to PC Memory Revision 5 28 SmartFusion2 Data Plane Demo using MSS HPDMA and SMC_FIC For each operation, Transfer Size can be selected from 8 KB to 32 KB as shown in Figure 24. It also has a Loop Count field to run the DMA operation in loop. The Burst Size (TLP size) is fixed to 32 bytes to match the DDR bridge buffer size. The actual size of the PCIe packet is the size of a single AXI burst transfer which is 32 bytes. Figure 24 • Fabric DMA Controls 16. Select the type of DMA transfer as PC Memory to eSRAM and select 32 K Transfer Size. Revision 5 29 SmartFusion2 Data Plane Demo using MSS HPDMA and SMC_FIC 17. Click Start Transfer. Figure 25 shows the DMA Transactions between the host PC memory and eSRAM. Figure 25 • DMA Transactions between Host PC Memory and eSRAM Revision 5 30 SmartFusion2 Data Plane Demo using MSS HPDMA and SMC_FIC 18. After completion of data transfer, the throughput is displayed. Figure 26 shows the throughput in the DMA transactions from the host PC to eSRAM. Figure 26 • Throughput in DMA Transactions from Host PC to eSRAM Revision 5 31 SmartFusion2 Data Plane Demo using MSS HPDMA and SMC_FIC 19. Enter 10 in the Loop Count field and click Loop Transfer to perform 10 sequential DMA transactions. After completion of data transfer, the PCIe_Demo application displays the throughput. Figure 27 shows the throughput in DMA transactions from host PC to eSRAM. The average throughput is also logged. The log file is stored in the host PC at C:\PCIe_Demo\DriverInstall. Figure 27 • Throughput in the DMA Transactions from the Host PC to eSRAM Revision 5 32 SmartFusion2 Data Plane Demo using MSS HPDMA and SMC_FIC 20. Select the type of DMA transfer as eSRAM to PC Memory and select 32 K Transfer Size. Click Start Transfer to perform a single DMA transaction. After completion of data transfer, the throughput is displayed. Figure 28 shows the throughput in the DMA transactions from eSRAM to the host PC. Figure 28 • Throughput in the DMA Transactions from eSRAM to the Host PC Revision 5 33 SmartFusion2 Data Plane Demo using MSS HPDMA and SMC_FIC 21. Enter 10 in the Loop Count field and click Loop Transfer to perform 10 repeated DMA transactions. After completion of data transfer, the throughput is displayed. Figure 29 shows the throughput in the DMA transactions from eSRAM to the host PC. Figure 29 • Throughput in the DMA Transactions from eSRAM to the Host PC The LEDs on the board can be blinked in parallel to the DMA operations by using the LED controls on the right side of GUI. The Enable LED Blinking During Loop Transfer check box need to be selected to do the LED blinking from host PC and DMA transfers. 22. Click Exit to quit the demo. Revision 5 34 SmartFusion2 Data Plane Demo using MSS HPDMA and SMC_FIC 2.7 Summary This demo shows how to implement a PCIe Data Plane Design using MSS HPDMA and SMC_FIC. Data transfer occurs between PCIe and SmartFusion2 eSRAM. Throughput for data transfers is dependent on the host PC system configuration, type of PCIe slots used. Table 3 shows the throughput values observed on the HP 230 PCIe slot 2. Table 3 • Throughput Summary Throughput (Mbps) DMA Transfer Type DMA Transfer Size Gen 1 Gen 2 Single Transfer Loop Transfer Single Transfer Loop Transfer Host PC Memory to 8 KB eSRAM 16 KB 36 36 50 49 36 36 50 49 32 KB 36 36 50 49 8 KB 92 92 113 113 16 KB 92 92 113 113 32 KB 92 92 113 113 eSRAM to host PC Memory Revision 5 35 Appendix: Register Details 3 Appendix: Register Details Table 4 shows the registers used to interface with the PCIe MSS HPDMA SMC_FIC design. These registers are in BAR1 address space. Table 4 • Register Details Register Name BAR Space Register Address Description PC_BASE_ADDR BAR 1 0x8028 Host PC memory base address provided by the driver. DMA_DIR BAR 1 0x8008 DMA direction Direction eSRAM to PCIe PCIe to eSRAM Register value 0x11AA1111 0x11AA2222 Size of DMA transfer Size 8KB 16KB 32KB Register value 0x2000 0x4000 0x8000 DMA_SIZE BAR 1 0x8010 DMA_CLK_CYCLES BAR 1 0x8018 Number of clock cycles taken to complete the DMA transfer. DMA_STATUS BAR 1 0x8020 1: DMA transfer completed 0: DMA transfer is not completed BLINK_M3 BAR 1 0x8030 Blinks the LEDs from Cortex-M3 if the register value is 0x11AA0F0F. RW_REG BAR 1 0x0 Scratchpad register for PCIe R/W LED_CTRL[7:0] BAR 0 0x13088 LEDs control register SWITCH_STATUS[11:8] BAR 0 0x13080 DIP switch status Revision 5 36 Revision History 4 Revision History The following table shows important changes made in this document for each revision. Revision Changes Revision 5 (April 2016) Updated the document for Libero v11.7 software release (SAR 78030). Revision 4 (October 2015) Updated the document for Libero v11.6 software release (SAR 71687). Revision 3 (March 2015) Updated the document for Libero v11.5 software release (SAR 65319). Revision 2 (August 2014) Updated the document for Libero v11.4 software release (SAR 59780). Revision 1 (March 2014) Initial release. Revision 5 37 Product Support 5 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. 5.1 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 5.2 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. 5.3 Technical Support For Microsemi SoC Products Support, visit http://www.microsemi.com/products/fpga-soc/design-support/fpga-soc-support. 5.4 Website You can browse a variety of technical and non-technical information on the Microsemi SoC Products Group home page, at http://www.microsemi.com/products/fpga-soc/fpga-and-soc. 5.5 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. 5.5.1 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]. 5.5.2 My Cases Microsemi SoC Products Group customers may submit and track technical cases online by going to My Cases. Revision 5 38 Product Support 5.5.3 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. 5.6 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. Revision 5 39 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; enterprise storage and communication solutions, security technologies and scalable anti-tamper products; Ethernet solutions; Powerover-Ethernet ICs and midspans; as well as custom design capabilities and services. Microsemi is headquartered in Aliso Viejo, Calif, and has approximately 4,800 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] © 2016 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. 50200535-5/04.16