FPGA Intellectual Property
PCI Express*, Networking and Connectivity, Memory Interfaces, DSP IP, and Video IP
6661 토론

How to map TX Avalon-MM slave interface into PC virtual memory?

EPino
초급자
1,685 조회수

Hi,

 

I'd like to map TXS port to virtual memory but I am having a hard time understandig how to do that.

 

For example, in order to map BAR0 to virtual memory all I have to do is access the configuration space and get the BAR0 physical address then call something like ioremap, if using Linux. 

 

Is there a similar way to get the TXS port physical memory address?

 

Device: Cyclone IV GX

 

Best Regards,

Eduardo

 

0 포인트
1 솔루션
SengKok_L_Intel
중재자
1,585 조회수

Hi Eduardo,

 

No, the TXS port should connect to your application interface NOT BAR.

 

If the read/write request is initiated from your application via TXS port to the host, and then the host will be responding to those requests accordingly.

 

The size of the host system memory can be 32 bits (2 ^32) or maybe 64 bits (2^64), you will need to confirm it from your host system.

 

It depends on which locations of the system memory that you would like to read/write from FPGA. In the IP GUI, there is an address translator table for you to fill in, and this is up to the user to decide where the system memory that their design need to access.

 

Regards -SK 

 

원본 게시물의 솔루션 보기

7 응답
SengKok_L_Intel
중재자
1,585 조회수

Hi,

 

BAR0 is AVMM master port, this is for host to access the endpoint (Host -> FPGA), where host issue read/write command, and FPGA response on it.

 

The TXS port is AVMM slave, this is for End point to access host (FPGA -> Host) where endpoint issue memory read/write command, and host response on it. The address width of the TXS depends on the setting of the size of address Page.

 

Regards -SK

 

 

0 포인트
EPino
초급자
1,585 조회수

Got it!

 

So the problem is: How do I know where in host memory will TXS write to?

Should I map host memory into the FPGA?

 

Regards,

Eduardo

 

0 포인트
SengKok_L_Intel
중재자
1,585 조회수

You have to map it to the host memory, and it depends where did you wanted to read/write from the system memory. This interface can access up to 4Gb of size.

 

Regards -SK

0 포인트
EPino
초급자
1,585 조회수

Ok, but that is the point of the original question. To map TXS to host memory i'll need a physicial memory address (that points to TXS base address), so that I can assign a virtual memory address to it, correct?

How can the host get that physical memory address? From the configuration space? Should I connect TXS to a BAR in Qsys?

 

Kind Regards,

Eduardo

0 포인트
SengKok_L_Intel
중재자
1,586 조회수

Hi Eduardo,

 

No, the TXS port should connect to your application interface NOT BAR.

 

If the read/write request is initiated from your application via TXS port to the host, and then the host will be responding to those requests accordingly.

 

The size of the host system memory can be 32 bits (2 ^32) or maybe 64 bits (2^64), you will need to confirm it from your host system.

 

It depends on which locations of the system memory that you would like to read/write from FPGA. In the IP GUI, there is an address translator table for you to fill in, and this is up to the user to decide where the system memory that their design need to access.

 

Regards -SK 

 

EPino
초급자
1,585 조회수
0 포인트
SengKok_L_Intel
중재자
1,585 조회수

I will set this forum case to close-pending for now. The status will remain in this state for 20 calendar days, simply post a note in this forum and it will be reopened for further investigation.

 

Regards -SK

0 포인트
응답