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: 
Visitor ahueffme
Visitor
6,499 Views
Registered: ‎12-08-2016

XDMA Linux hang up on boot time

Hi

System information:
FPGA: XC7K70T
Board: custom
Host: Ubuntu 16.4 LTS (4.4.0)

Endpoint Configuration:
Lane Width: x8
Link Speed: 2,5GT/s
Reference clock Frequency: 100MHz

Development:
Vivado version: 2016.03

Short Version:

I have a custom board and I need to implement an PCIe endpoint with DMA.
At first I use the PCIe Axi memory mapped endpoint (PG055) with the cdma unit (PG034).
Under Linux (Ubuntu) I can see the endpoint (lspci) and writing/reading data to/from a Block Memory work.

As
a second step I want to check the DMA Subsystem (xdma [PG195]).
The Problem is that the Hostsystem hang up in the Boot Process (Black screen not text).
I use a clear Ubuntu.

more infos:
I use for both endpoint the default value for Vendor and Device ID.

 

 

I have no idea how to fix the problem.
Can some one give me an hind.

 

Regards,

Arne

0 Kudos
9 Replies
Contributor
Contributor
6,481 Views
Registered: ‎06-09-2015

Re: XDMA Linux hang up on boot time

I have also faced similar issue, but not solved yet.

while implementing example design (open example design) in XDMA (dma subsystem for pci express) in KCU105 it works.

xdma_example_design_kcu105.jpg

but when customized design with some peripherals wont work on XDMA at same board.

xdma_custom_design_kcu105.jpg

This design was tested on CentOS.

0 Kudos
Visitor ahueffme
Visitor
6,421 Views
Registered: ‎12-08-2016

Re: XDMA Linux hang up on boot time

Hi

 

 

I test a little bit more.

The state from the LTSSM is 0x16 (L0) and the  user_lnk_up is "1".

 

 

Regards,

Arne

0 Kudos
Xilinx Employee
Xilinx Employee
6,380 Views
Registered: ‎11-25-2015

Re: XDMA Linux hang up on boot time

Hi @ahueffme,

 

Since you claim that link is up and ltssm is in normal working condition i believe the issue is mapping related.Please have a look on below description and see if it helps

 

PCIe example design generated from Vivado 2016.2 and 2016.3 are found to be working fine on KCU105 board with the same XDMA drivers available with AR65444.

 

However, if the design including XDMA is not directly connected to BRAM like an example design but using AXI interconnect and DDR4 controller for DMA operation, the following issue can be observed with VIVADO 2016.3 when the XDMA driver got loaded

 

Xdma: module verification failed: signature and/or required key missing - tainting kernel

 

Following observations can be found when this error message is reported in linux>dmesg

        The kernel module is installed correctly and the xmda devices were recognized.

        The board is detected as ID8038 with link status 8GT x8

This means that

        ./load_driver.sh has loaded the driver correctly

        . /reg_rw seems working, the provided application

However, . /dma_to_device halts during the operation.

This is observed with Vivado2016.3 design when XDMA connected to an AXI interconnect with other master..

 

Solution

 

Following is the reason for the observations

When XDMA is alone, there is no AXI Crossbar inside AXI interconnect. It means, XDMA directly accesses DDR4 MIG as long as an address issued by XDMA is within the range of DDR4. However when AXI Crossbar got inserted between DDR4 MIG and XDMA, DDR4 MIG base address (setting under IPI) will change. 

With the updated design including AXI crossbar, the DDR4 MIG could have base address starting from 0x0000_0000_8000_0000 (for example) but XDMA application will be trying to access 0x0000_0000_0000_0000. This caused the program halt. 

To solve this issue, it is required to ensure XDMA application tries to access the correct addresses with in the address range of MIG..

 

Thanks and Regards
Sethu
--------------------------------------------------------------------------------------------
Please mark the post as an answer "Accept as solution" in case it helped resolve your query.
Give kudos in case a post in case it guided to the solution

 

0 Kudos
Visitor ahueffme
Visitor
6,323 Views
Registered: ‎12-08-2016

Re: XDMA Linux hang up on boot time

Hi

Thank you for your answer.
I have added a second BRAM and a JATG to AXI Master.


I have used the following Address configuration:
frst BRAM: 0xC000_0000
second BRAM: 0x0000_0000
PCIe to AXI Lite Master (PCIe to AXI Translation 0x0000000000000000)

These changes haven fix my problem. The Linux Host system hangs up during start-up.

xdma2.png

0 Kudos
Visitor ahueffme
Visitor
6,119 Views
Registered: ‎12-08-2016

Re: XDMA Linux hang up on boot time

Hi

 

 

New year, new information and test.

 

I test the following option but nothing works.

 

XDMA with DMA Interfaces option : AXI Stream 

 

XDMA with

- DMA Interfaces option : AXI Memory Mapped

- disable "PCIe to AXI Lite Master Interface"

- disable MSI Capabilities

- disable MSI-X Capability

 

every thing testet withe Vivado 2016.04.

 

With a  JTAG to AXI Master i have successful write and read to one of the two BRAMs.

 

 

0 Kudos
Visitor ahueffme
Visitor
6,081 Views
Registered: ‎12-08-2016

Re: XDMA Linux hang up on boot time

Hi

 

 

I got a working version. But only with X4. The following table shows the tested combination.

 

Lane Width Link Speed 2.5GT/s Link Speed 5.0GT/s
X1; works works
X2 works works
X4 works works
X8 works not works not

 

 

The "AXI Bridge for PCI EXpress v2.8" endpoint work with x8 and 2.5GT/s.

0 Kudos
Observer adefan
Observer
5,265 Views
Registered: ‎04-13-2016

Re: XDMA Linux hang up on boot time

Hi @ahueffme,

 

I have a similar issue as yours. The PC hangs during booting no matter it is windows7 or ubuntu linux.   Have you made any progress regarding to X8 ?

I used the following software and hardware.

HW-KC705  Rev. 1.0
Vivado 2016.4  with and without AR 68512 patch.
The DAM/Bridge subsystem for PCI Express (V3.0)  is customized to Gen2 and  X8.

AXI-MM 128-bits @ 250MHz.  one H2C and one C2H,  others are default.

By the way, by the way I can make either Gen1X8 or Gen2X4 boot successfully by set AXI-MM data width to 64-bit. Once I set it to 128-bit, the PC hangs during booting.

 

Best regards,

 

 

Kai

 

 

0 Kudos
Visitor ahueffme
Visitor
5,257 Views
Registered: ‎12-08-2016

Re: XDMA Linux hang up on boot time

@adefan

 

I think this is a problem in the IP Core and i think the Problem is the AXI MM

If i change the AXI-MM from 128-Bit to 64-Bit the endpoint works withe PIO ans SG. 

 

I hope the Xilinx fix this Problem in the next VIVADO version.

0 Kudos
Visitor ahueffme
Visitor
4,590 Views
Registered: ‎12-08-2016

Re: XDMA Linux hang up on boot time

Hi

 

 

In the new version XDMA 3.1  work with 128-Bit AXI.

 

0 Kudos