Nios® V/II Embedded Design Suite (EDS)
Support for Embedded Development Tools, Processors (SoCs and Nios® V/II processor), Embedded Development Suites (EDSs), Boot and Configuration, Operating Systems, C and C++
12589 Discussions

Why Modular-SGDMA Prefetcher Core is not running?

LKwia
Beginner
1,345 Views

mSGDMA Prefetcher parameters for TSE Sending:

-Data Path: 512

-Descriptor: 256

-Maximum transfer: 2KB

-Transfer type: Aligned

-Burst enabled

-Burst count: 128

-Force burst aligned enable

-Packet support enabled

-Error enabled: 1

-Enable prefetching module

 

mSGDMA Prefetcher Software algorithm:

 

Reset:

set ALT_MSGDMA_PREFETCHER_CTRL_RESET_SET_MASK;

while ALT_MSGDMA_PREFETCHER_CTRL_RESET_GET;

set ALTERA_MSGDMA_CSR_RESET_MASK;

while ALTERA_MSGDMA_CSR_RESET_STATE_MASK;

Init descriptor:

next_descriptor-control: reset ALT_MSGDMA_PREFETCHER_DESCRIPTOR_CTRL_OWN_BY_HW_CLR_MASK;

descriptor-read_address: set addres;

descriptor-write_address: set 0;

descriptor-transfer_length: set lenght;

descriptor-next_desc_ptr: set next_descriptor;

descriptor-control: set ALT_MSGDMA_PREFETCHER_DESCRIPTOR_CTRL_OWN_BY_HW_SET_MASK, ALTERA_MSGDMA_DESCRIPTOR_CONTROL_GENERATE_SOP_MASK, ALTERA_MSGDMA_DESCRIPTOR_CONTROL_GENERATE_EOP_MASK, ALTERA_MSGDMA_DESCRIPTOR_CONTROL_GO_MASK;

 

mSGDMA Start:

while ALT_MSGDMA_PREFETCHER_CTRL_RUN_GET;

set ALTERA_MSGDMA_CSR_STOP_DESCRIPTORS_MASK;

load descriptor IOWR_ALT_MSGDMA_PREFETCHER_NEXT_DESCRIPTOR_PTR_LOW;

IOWR_ALT_MSGDMA_PREFETCHER_NEXT_DESCRIPTOR_PTR_HIGH: set 0;

set ALTERA_MSGDMA_CSR_STOP_ON_ERROR_MASK;

reset ALTERA_MSGDMA_CSR_STOP_DESCRIPTORS_MASK;

set ALT_MSGDMA_PREFETCHER_CTRL_RUN_SET_MASK;

 

 

0 Kudos
0 Replies
Reply