UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Adventurer
Adventurer
7,447 Views
Registered: ‎10-28-2011

Issues when read/write data from the SODIMM in a microblaze based system

Jump to solution

Hi:

I'm creating a system through Vivado IPI tool.
There are MicroBlaze, PCIe interface, DDR3 controller in my system, as shown in the attached picture.
What I want to do now is to transfer some data from host PC, through PCIe's BAR space, to DDR3 SODIMM on my board.
After that, I want to use MicroBlaze to get the data from SODIMM an do some operation.
The MIG controller is connected to both MicroBlaze and PCIe AXI bridge throuth a AXI interconnect.

In the PCIe AXI bridge block, I set only BAR0 and set the space to be 128MB, as shown in the picture.
When the system is programmed to the board and power on the host PC, the BAR address is assigned to 0XD0000000 by host, shown in the picture.
And then I use RW-everything tool to write data 0XBBBBBBBB to address 0XD0000000.
After that, I use the SDK to connect MicroBlaze and try to rear the data from SODIMM.
The code is shown in picture, I use a pointer with address 0X80000000 to access the data.
But I can only read 0XFF back, even though I already write the data through RW everything tool.

The address map setting is shown in the picture.
Basically I just set the BAR0 to be 128MB, and kept the other setting unchanged.
Is my address setting correct?
The system is working because I can use the MicroBlaze to write the SODIMM and read it back.
The PCIe interface is working since the link is up.
So I think it may be the address mapping issue.
Can anyone help me on this?
THanks a lot!! :)

David

1.jpg
2.jpg
3.jpg
4.jpg
5.jpg
6.jpg
0 Kudos
1 Solution

Accepted Solutions
Highlighted
Xilinx Employee
Xilinx Employee
13,898 Views
Registered: ‎02-01-2008

Re: Issues when read/write data from the SODIMM in a microblaze based system

Jump to solution

In the configuration of the pcie bridge, you have the axi-pcie BAR translation set to 0x0. So any PCIe transaction that reaches BAR0 will get its AXI address translated to 0-0x07FFFFFF. Your address map for the system shows the MIG is sitting at 0x80000000. So you need to change the BAR0 pcie to axi translation to 0x80000000.

2 Replies
Highlighted
Xilinx Employee
Xilinx Employee
13,899 Views
Registered: ‎02-01-2008

Re: Issues when read/write data from the SODIMM in a microblaze based system

Jump to solution

In the configuration of the pcie bridge, you have the axi-pcie BAR translation set to 0x0. So any PCIe transaction that reaches BAR0 will get its AXI address translated to 0-0x07FFFFFF. Your address map for the system shows the MIG is sitting at 0x80000000. So you need to change the BAR0 pcie to axi translation to 0x80000000.

Adventurer
Adventurer
7,357 Views
Registered: ‎10-28-2011

Re: Issues when read/write data from the SODIMM in a microblaze based system

Jump to solution

Hi Johnmcd: Thanks a lot for your advice! After modifying the PCIe to AXI translation to 0X80000000, the system works! :) Thank you! David

0 Kudos