Intel® Arria® 10 Hard Processor System Technical Reference Manual
                    
                        ID
                        683711
                    
                
                
                    Date
                    1/10/2023
                
                
                    Public
                
            A newer version of this document is available. Customers should click here to go to the newest version.
                
                    
                    
                        1. Intel® Arria® 10 Hard Processor System Technical Reference Manual Revision History
                    
                
                    
                        2. Introduction to the Hard Processor System
                    
                    
                
                    
                        3. Clock Manager
                    
                    
                
                    
                        4. Reset Manager
                    
                    
                
                    
                        5. FPGA Manager
                    
                    
                
                    
                        6. System Manager
                    
                    
                
                    
                    
                        7. SoC Security
                    
                
                    
                    
                        8. System Interconnect
                    
                
                    
                        9. HPS-FPGA Bridges
                    
                    
                
                    
                        10. Cortex*-A9 Microprocessor Unit Subsystem
                    
                    
                
                    
                        11. CoreSight* Debug and Trace
                    
                    
                
                    
                        12. Error Checking and Correction Controller
                    
                    
                
                    
                        13. On-Chip Memory
                    
                    
                
                    
                        14. NAND Flash Controller
                    
                    
                
                    
                        15. SD/MMC Controller
                    
                    
                
                    
                        16. Quad SPI Flash Controller
                    
                    
                
                    
                        17. DMA Controller
                    
                    
                
                    
                        18. Ethernet Media Access Controller
                    
                    
                
                    
                        19. USB 2.0 OTG Controller
                    
                    
                
                    
                        20. SPI Controller
                    
                    
                
                    
                        21. I2C Controller
                    
                    
                
                    
                        22. UART Controller
                    
                    
                
                    
                        23. General-Purpose I/O Interface
                    
                    
                
                    
                        24. Timer
                    
                    
                
                    
                        25. Watchdog Timer
                    
                    
                
                    
                        26. Hard Processor System I/O Pin Multiplexing
                    
                    
                
                    
                        27. Introduction to the HPS Component
                    
                    
                
                    
                        28. Instantiating the HPS Component
                    
                    
                
                    
                        29. HPS Component Interfaces
                    
                    
                
                    
                        30. Simulating the HPS Component
                    
                    
                
                    
                        A. Booting and Configuration
                    
                    
                
            
        
                                    
                                    
                                        
                                        
                                            10.3.1. Functional Description
                                        
                                        
                                    
                                        
                                        
                                            10.3.2. Implementation Details
                                        
                                        
                                    
                                        
                                            10.3.3. Cortex*-A9 Processor
                                        
                                        
                                        
                                    
                                        
                                        
                                            10.3.4. Interactive Debugging Features
                                        
                                        
                                    
                                        
                                            10.3.5. L1 Caches
                                        
                                        
                                        
                                    
                                        
                                        
                                            10.3.6. Preload Engine
                                        
                                        
                                    
                                        
                                        
                                            10.3.7. Floating Point Unit
                                        
                                        
                                    
                                        
                                            10.3.8. NEON* Multimedia Processing Engine
                                        
                                        
                                        
                                    
                                        
                                            10.3.9. Memory Management Unit
                                        
                                        
                                        
                                    
                                        
                                        
                                            10.3.10. Performance Monitoring Unit
                                        
                                        
                                    
                                        
                                            10.3.11. Arm* Cortex* -A9 MPCore* Timers
                                        
                                        
                                        
                                    
                                        
                                            10.3.12. Generic Interrupt Controller
                                        
                                        
                                        
                                    
                                        
                                            10.3.13. Global Timer
                                        
                                        
                                        
                                    
                                        
                                            10.3.14. Snoop Control Unit
                                        
                                        
                                        
                                    
                                        
                                            10.3.15. Accelerator Coherency Port
                                        
                                        
                                        
                                    
                                
                            
                        
                        
                            
                            
                                11.1. Features of CoreSight* Debug and Trace
                            
                        
                            
                            
                                11.2. Arm* CoreSight* Documentation
                            
                        
                            
                            
                                11.3. CoreSight Debug and Trace Block Diagram and System Integration
                            
                        
                            
                                11.4. Functional Description of CoreSight Debug and Trace
                            
                            
                        
                            
                                11.5. CoreSight* Debug and Trace Programming Model
                            
                            
                        
                            
                                11.6. CoreSight Debug and Trace Address Map and Register Definitions
                            
                            
                        
                    
                
                                    
                                    
                                        
                                            11.4.1. Debug Access Port
                                        
                                        
                                        
                                    
                                        
                                        
                                            11.4.2. System Trace Macrocell
                                        
                                        
                                    
                                        
                                        
                                            11.4.3. Trace Funnel
                                        
                                        
                                    
                                        
                                            11.4.4. CoreSight Trace Memory Controller
                                        
                                        
                                        
                                    
                                        
                                        
                                            11.4.5. AMBA* Trace Bus Replicator
                                        
                                        
                                    
                                        
                                        
                                            11.4.6. Trace Port Interface Unit
                                        
                                        
                                    
                                        
                                            11.4.7. Embedded Cross Trigger System
                                        
                                        
                                        
                                    
                                        
                                        
                                            11.4.8. Program Trace Macrocell
                                        
                                        
                                    
                                        
                                        
                                            11.4.9. HPS Debug APB* Interface
                                        
                                        
                                    
                                        
                                            11.4.10. FPGA Interface
                                        
                                        
                                        
                                    
                                        
                                        
                                            11.4.11. Debug Clocks
                                        
                                        
                                    
                                        
                                        
                                            11.4.12. Debug Resets
                                        
                                        
                                    
                                
                            
                        
                        
                            
                            
                                14.1. NAND Flash Controller Features
                            
                        
                            
                            
                                14.2. NAND Flash Controller Block Diagram and System Integration
                            
                        
                            
                            
                                14.3. NAND Flash Controller Signal Descriptions
                            
                        
                            
                                14.4. Functional Description of the NAND Flash Controller
                            
                            
                        
                            
                            
                                14.5. NAND Flash Controller Programming Model
                            
                        
                            
                            
                                14.6. NAND Flash Controller Address Map and Register Definitions
                            
                        
                    
                
                        
                        
                            
                                15.1. Features of the SD/MMC Controller
                            
                            
                        
                            
                            
                                15.2. SD/MMC Controller Block Diagram and System Integration
                            
                        
                            
                            
                                15.3. SD/MMC Controller Signal Description
                            
                        
                            
                            
                                15.4. Functional Description of the SD/MMC Controller
                            
                        
                            
                            
                                15.5. SD/MMC Controller Programming Model
                            
                        
                            
                            
                                15.6. SD/MMC Controller Address Map and Register Definitions
                            
                        
                    
                
                        
                        
                            
                            
                                16.1. Features of the Quad SPI Flash Controller
                            
                        
                            
                            
                                16.2. Quad SPI Flash Controller Block Diagram and System Integration
                            
                        
                            
                            
                                16.3. Quad SPI Flash Controller Signal Description
                            
                        
                            
                                16.4. Functional Description of the Quad SPI Flash Controller
                            
                            
                        
                            
                                16.5. Quad SPI Flash Controller Programming Model
                            
                            
                        
                            
                            
                                16.6. Quad SPI Flash Controller Address Map and Register Definitions
                            
                        
                    
                
                                    
                                    
                                        
                                        
                                            16.4.1. Overview
                                        
                                        
                                    
                                        
                                            16.4.2. Data Slave Interface
                                        
                                        
                                        
                                    
                                        
                                        
                                            16.4.3. SPI Legacy Mode
                                        
                                        
                                    
                                        
                                            16.4.4. Register Slave Interface
                                        
                                        
                                        
                                    
                                        
                                        
                                            16.4.5. Local Memory Buffer
                                        
                                        
                                    
                                        
                                        
                                            16.4.6. DMA Peripheral Request Controller
                                        
                                        
                                    
                                        
                                        
                                            16.4.7. Arbitration between Direct/Indirect Access Controller and STIG
                                        
                                        
                                    
                                        
                                            16.4.8. Configuring the Flash Device
                                        
                                        
                                        
                                    
                                        
                                        
                                            16.4.9. XIP Mode
                                        
                                        
                                    
                                        
                                        
                                            16.4.10. Write Protection
                                        
                                        
                                    
                                        
                                        
                                            16.4.11. Data Slave Sequential Access Detection
                                        
                                        
                                    
                                        
                                            16.4.12. Clocks
                                        
                                        
                                        
                                    
                                        
                                            16.4.13. Resets
                                        
                                        
                                        
                                    
                                        
                                        
                                            16.4.14. Interrupts
                                        
                                        
                                    
                                
                            
                                    
                                    
                                        
                                        
                                            18.6.1. System Level EMAC Configuration Registers
                                        
                                        
                                    
                                        
                                        
                                            18.6.2. EMAC FPGA Interface Initialization
                                        
                                        
                                    
                                        
                                        
                                            18.6.3. EMAC HPS Interface Initialization
                                        
                                        
                                    
                                        
                                        
                                            18.6.4. DMA Initialization
                                        
                                        
                                    
                                        
                                        
                                            18.6.5. EMAC Initialization and Configuration
                                        
                                        
                                    
                                        
                                        
                                            18.6.6. Performing Normal Receive and Transmit Operation
                                        
                                        
                                    
                                        
                                        
                                            18.6.7. Stopping and Starting Transmission
                                        
                                        
                                    
                                        
                                            18.6.8. Programming Guidelines for Energy Efficient Ethernet
                                        
                                        
                                        
                                    
                                        
                                            18.6.9. Programming Guidelines for Flexible Pulse-Per-Second (PPS) Output
                                        
                                        
                                        
                                    
                                
                            
                        
                        
                            
                                19.1. Features of the USB OTG Controller
                            
                            
                        
                            
                            
                                19.2. USB OTG Controller Block Diagram and System Integration
                            
                        
                            
                            
                                19.3. USB 2.0 ULPI PHY Signal Description
                            
                        
                            
                                19.4. Functional Description of the USB OTG Controller
                            
                            
                        
                            
                                19.5. USB OTG Controller Programming Model
                            
                            
                        
                            
                            
                                19.6. USB 2.0 OTG Controller Address Map and Register Definitions
                            
                        
                    
                
                                                
                                                
                                                    
                                                    
                                                        29.5.1.1. NAND Flash Controller Interface
                                                    
                                                    
                                                
                                                    
                                                    
                                                        29.5.1.2. SD/MMC Controller Interface
                                                    
                                                    
                                                
                                                    
                                                    
                                                        29.5.1.3. Quad SPI Flash Controller Interface
                                                    
                                                    
                                                
                                                    
                                                    
                                                        29.5.1.4. Ethernet Media Access Controller Interface
                                                    
                                                    
                                                
                                                    
                                                    
                                                        29.5.1.5. USB 2.0 OTG Controller Interface
                                                    
                                                    
                                                
                                                    
                                                    
                                                        29.5.1.6. SPI Controller Interface
                                                    
                                                    
                                                
                                                    
                                                    
                                                        29.5.1.7. I2C Controller Interface
                                                    
                                                    
                                                
                                                    
                                                    
                                                        29.5.1.8. UART Interface
                                                    
                                                    
                                                
                                            
                                        
                        
                        
                            
                                30.1. Simulation Flows
                            
                            
                        
                            
                                30.2. Clock and Reset Interfaces
                            
                            
                        
                            
                            
                                30.3. FPGA-to-HPS AXI Slave Interface
                            
                        
                            
                            
                                30.4. HPS-to-FPGA AXI Master Interface
                            
                        
                            
                            
                                30.5. Lightweight HPS-to-FPGA AXI Master Interface
                            
                        
                            
                            
                                30.6. HPS-to-FPGA MPU Event Interface
                            
                        
                            
                            
                                30.7. Interrupts Interface
                            
                        
                            
                            
                                30.8. HPS-to-FPGA Debug APB* Interface
                            
                        
                            
                            
                                30.9. FPGA-to-HPS System Trace Macrocell Hardware Event Interface
                            
                        
                            
                            
                                30.10. HPS-to-FPGA Cross-Trigger Interface
                            
                        
                            
                            
                                30.11. FPGA-to-HPS DMA Handshake Interface
                            
                        
                            
                            
                                30.12. Boot from FPGA Interface
                            
                        
                            
                            
                                30.13. Security Manager Anti-Tamper Signals Interface
                            
                        
                            
                            
                                30.14. EMIF Conduit
                            
                        
                            
                                30.15. Pin MUX and Peripherals
                            
                            
                        
                    
                18.6.2. EMAC FPGA Interface Initialization
 To initialize the Ethernet controller to use the FPGA GMII/MII interface, specific software steps must be followed. 
  
 
  In general, the FPGA interface must be active in user mode with valid PHY clocks, the Ethernet Controller must be in a reset state during static configuration and the clock must be active and valid before the Ethernet Controller is brought out of reset.
-  After the HPS is released from cold or warm reset, reset the Ethernet Controller module by setting the appropriate emac* bit in the per0modrst register in the Reset Manager. 
    
-  
       
- emac reset bits [2:0] – reset for EMAC0/1/2 port.
 - emacptp reset bit [22] – reset for EMAC PTP interface, only required when PTP timestamp interface is enabled.
 
 
 -  
       
 - Configure the EMAC Controller clock to 250 MHz by programming the appropriate registers in the Clock Manager.
 -  Bring the Ethernet PHY out of reset to allow PHY to generate RX clocks and TX clocks.  
    
When using FPGA GMII/MII interface, you must have a stable RX clock (emac_clk_rx_i) and TX clock (emac_clk_tx_i) supply from PHY to EMAC before bringing EMAC out of reset.
There are no registers to verify, but you can create the following custom logic block to cross check:- You can use Signal Tap to check, or create a simple counter block with the RX clock and TX clock as clock source to check if it runs.
 
 -  If the PTP clock source is from the FPGA: 
    
- Release per0modrest.emacptp bit from reset.
 - Configure emac_global register to select f2s_ptp_ref_clk from the FPGA fabric.
 - Ensure that the FPGA f2s_ptp_ref_clk is active.
 
 - The soft GMII/MII adaptor must be loaded with active clocks propagating. The FPGA must be configured to user mode and a reset to the user soft FPGA IP may be required to propagate the PHY clocks to the HPS.
 -  Once all clock sources are valid, apply the following clock settings: 
    
- Program the phy_intf_sel field of the emac* register in the System Manager to 0x0 to select GMII/MII PHY interface.
 - If the PTP clock source is from the FPGA, set the ptp_clk_sel bit to 0x1 in the emac_global register of the System Manager.
 - Enable the Ethernet Controller FPGA interface by setting the emac_* bit in the fpgaintf_en_3 register of the System Manager.
 
 - Configure all of the EMAC static settings if the user requires a different setting from the default value. These settings include the AxPROT[1:0] and AxCACHE signal values which are programmed in the emac* register of the System Manager.
 - Execute a register read back to confirm the clock and static configuration settings are valid.
 - After confirming the settings are valid, software can clear the emac* bit in the per0modrst register of the Reset Manager to bring the EMAC out of reset..
 
   When these steps are completed, general Ethernet controller and DMA software initialization and configuration can continue. 
   
 
 
    Note: These same steps can be applied to convert the HPS GMII to an RMII or SGMII interface through the FPGA, except that in step 5 during FPGA configuration, you would load the appropriate soft adaptor for the interface and apply reset to it as well. The PHY interface select encoding would remain as 0x0. For the SGMII interface additional external transceiver logic would be required. Routing the Ethernet signals through the FPGA is useful for designs that are pin-limited in the HPS.