Visible to Intel only — GUID: suc1412018804643
Ixiasoft
1. Cyclone® V 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. Scan Manager
8. System Interconnect
9. HPS-FPGA Bridges
10. Cortex®-A9 Microprocessor Unit Subsystem
11. CoreSight* Debug and Trace
12. SDRAM Controller Subsystem
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. CAN Controller
27. Introduction to the HPS Component
28. Instantiating the HPS Component
29. HPS Component Interfaces
30. Simulating the HPS Component
31. Register Address Map for Cyclone V HPS
A. Booting and Configuration
8.3.1. Master to Slave Connectivity Matrix
8.3.2. System Interconnect Address Spaces
8.3.3. Master Caching and Buffering Overrides
8.3.4. Security
8.3.5. Configuring the Quality of Service Logic
8.3.6. Cyclic Dependency Avoidance Schemes
8.3.7. System Interconnect Master Properties
8.3.8. Interconnect Slave Properties
8.3.9. Upsizing Data Width Function
8.3.10. Downsizing Data Width Function
8.3.11. Lock Support
8.3.12. FIFO Buffers and Clock Crossing
8.3.13. System Interconnect Resets
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
12.1. Features of the SDRAM Controller Subsystem
12.2. SDRAM Controller Subsystem Block Diagram
12.3. SDRAM Controller Memory Options
12.4. SDRAM Controller Subsystem Interfaces
12.5. Memory Controller Architecture
12.6. Functional Description of the SDRAM Controller Subsystem
12.7. SDRAM Power Management
12.8. DDR PHY
12.9. Clocks
12.10. Resets
12.11. Port Mappings
12.12. Initialization
12.13. SDRAM Controller Subsystem Programming Model
12.14. Debugging HPS SDRAM in the Preloader
12.15. SDRAM Controller Address Map and Register Definitions
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. Interface Signals
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
26.3.1.1.1. Message Valid (MsgVal)
26.3.1.1.2. New Data (NewDat)
26.3.1.1.3. Message Lost (MsgLst)
26.3.1.1.4. Interrupt Pending (IntPnd)
26.3.1.1.5. Transmit Interrupt Enable (TxIE)
26.3.1.1.6. Receive Interrupt Enable (RxIE)
26.3.1.1.7. Remote Enable (RmtEn)
26.3.1.1.8. Transmit Request (TxRqst)
26.3.1.1.9. End of Block (EoB)
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. FPGA-to-HPS SDRAM Interface
30.7. HPS-to-FPGA MPU Event Interface
30.8. Interrupts Interface
30.9. HPS-to-FPGA Debug APB* Interface
30.10. FPGA-to-HPS System Trace Macrocell Hardware Event Interface
30.11. HPS-to-FPGA Cross-Trigger Interface
30.12. HPS-to-FPGA Trace Port Interface
30.13. FPGA-to-HPS DMA Handshake Interface
30.14. Boot from FPGA Interface
30.15. General Purpose Input Interface
Visible to Intel only — GUID: suc1412018804643
Ixiasoft
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 permodrst register in the Reset Manager.
- Configure the EMAC Controller clock to 250 MHz by programming the appropriate cnt value in the emac*clk register 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, 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 physel_* field in the ctrl register of the System Manager (EMAC Group) to 0x0 to select the GMII/MII PHY interface.
- If the PTP clock source is from the FPGA, set the ptpclksel_* bit in the ctrl register (EMAC group) of the System Manager to be 0x1.
- Enable the Ethernet Controller FPGA interface by setting the emac_* bit in the module register of the System Manager (FPGA Interface group).
- Configure all of the EMAC static settings if the user requires a different setting from the default value. These settings include AXI AxCache signal values which are programmed in l3 register in the EMAC group 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 permodrst 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 RGMII, 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.