Visible to Intel only — GUID: sfo1410068992362
Ixiasoft
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
Visible to Intel only — GUID: sfo1410068992362
Ixiasoft
18.6.4. DMA Initialization
This section provides the instructions for initializing the DMA registers in the proper sequence. This initialization sequence can be done after the EMAC interface initialization has been completed. Perform the following steps to initialize the DMA:
- Provide a software reset to reset all of the EMAC internal registers and logic. (DMA Register 0 (Bus Mode Register) – bit 0). †
- Wait for the completion of the reset process (poll bit 0 of the DMA Register 0 (Bus Mode Register), which is only cleared after the reset operation is completed). †
- Poll the bits of Register 11 ( AXI* Status) to confirm that all previously initiated (before software reset) or ongoing transactions are complete.
Note: If the application cannot poll the register after soft reset (because of performance reasons), then it is recommended that you continue with the next steps and check this register again (as mentioned in step 12) before triggering the DMA operations.†
- Program the following fields to initialize the Bus Mode Register by setting values in DMA Register 0 (Bus Mode Register):†
- Mixed Burst and AAL
- Fixed burst or undefined burst†
- Burst length values and burst mode values†
- Descriptor Length (only valid if Ring Mode is used)†
- Program the interface options in Register 10 ( AXI* Bus Mode Register). If fixed burst-length is enabled, then select the maximum burst-length possible on the bus (bits[7:1]).†
- Create a proper descriptor chain for transmit and receive. In addition, ensure that the receive descriptors are owned by DMA (bit 31 of descriptor should be set). When OSF mode is used, at least two descriptors are required.
- Make sure that your software creates three or more different transmit or receive descriptors in the chain before reusing any of the descriptors.†
- Initialize receive and transmit descriptor list address with the base address of the transmit and receive descriptor (Register 3 (Receive Descriptor List Address Register) and Register 4 (Transmit Descriptor List Address Register) respectively).†
- Program the following fields to initialize the mode of operation in Register 6 (Operation Mode Register):
- Receive and Transmit Store And Forward†
- Receive and Transmit Threshold Control (RTC and TTC)†
- Hardware Flow Control enable†
- Flow Control Activation and De‑activation thresholds for MTL Receive and Transmit FIFO buffers (RFA and RFD)†
- Error frame and undersized good frame forwarding enable†
- OSF Mode†
- Clear the interrupt requests, by writing to those bits of the status register (interrupt bits only) that are set. For example, by writing 1 into bit 16, the normal interrupt summary clears this bit (DMA Register 5 (Status Register)).†
- Enable the interrupts by programming Register 7 (Interrupt Enable Register).†
- Read Register 11 (AHB or AXI* Status) to confirm that all previous transactions are complete.†
Note: If any previous transaction is still in progress when you read the Register 11 ( AXI* Status), then it is strongly recommended to check the slave components addressed by the master interface.†
- Start the receive and transmit DMA by setting SR (bit 1) and ST (bit 13) of the control register (DMA Register 6 (Operation Mode Register). †