Bug 203435 - Xilinx pcie endpoint DMA not functional for ZynqMP PS AXI-PXI DMA endpoint
Summary: Xilinx pcie endpoint DMA not functional for ZynqMP PS AXI-PXI DMA endpoint
Status: RESOLVED INVALID
Alias: None
Product: Drivers
Classification: Unclassified
Component: PCI (show other bugs)
Hardware: Other Linux
: P1 normal
Assignee: drivers_pci@kernel-bugs.osdl.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-04-26 12:09 UTC by d t
Modified: 2019-04-26 13:33 UTC (History)
1 user (show)

See Also:
Kernel Version: 4.14.0
Subsystem:
Regression: No
Bisected commit-id:


Attachments

Description d t 2019-04-26 12:09:29 UTC
The ps_pcie_dma-1.00.a driver does not work as an endpoint. I'd be happy to help fix/enable/test this out, but I do not understand what the intent was.

The rootdma option is the only one allowed / documented through device-tree and kernel docs. It does not cover the epdma branches in the code that require that 
drivers/dma/xilinx/xilinx_ps_pcie_platform.c:18:#define PLATFORM_DRIVER_NAME		  "ps_pcie_pform_dma"

be available. I am not sure if this was intended to be the endpoint.

The vivado build for the pcie endpoint will not enable the endpoint DMA channels. I would expect that to be done through device-tree/PCIe BAR configuration reads (for sizes) to set up the channels, but I can't find anything that may other than the mystery of epdma with PLATFORM_DRIVER_NAME.

Because the fsbl does not enable the AXI-DMA the rootdma channel enable check fails on line xilinx_ps_pcie_platform.c:1832
	channel->chan_base =
	(struct DMA_ENGINE_REGISTERS *)((__force char *)(xdev->reg_base) +
				 (channel_number * DMA_CHANNEL_REGS_SIZE));

	if (((channel->chan_base->dma_channel_status) &
				DMA_STATUS_DMA_PRES_BIT) == 0) {
		dev_err(&platform_dev->dev,
			"Hardware reports channel not present\n");
		return -ENOTSUPP;
	} 

Is there a different way to access use the PS AXI-PCIe DMA?

Can anyone offer some advice? Have I misunderstood the dis-functionality of the epdma -vs- rootdma branching?

Thanks
Comment 1 Bjorn Helgaas 2019-04-26 13:24:01 UTC
I forwarded this to linux-pci and some Xilinx and DMA engine folks in case they have some insight.  But since Vivado and drivers/dma/xilinx/xilinx_ps_pcie_platform.c don't seem to be in mainline Linux, I suspect this report should be directed to Xilinx.

I'm closing this for now on the assumption that it isn't applicable to upstream Linux, but please reopen with more details if I'm mistaken.
Comment 2 d t 2019-04-26 13:33:05 UTC
Thanks, Bjorn. I was going off the maintainers/bugs. I'll reopen if there's a change.

-----Original Message-----
From: bugzilla-daemon@bugzilla.kernel.org <bugzilla-daemon@bugzilla.kernel.org> 
Sent: Friday, April 26, 2019 9:24 AM
To: dtyree@newagemicro.com
Subject: [Bug 203435] Xilinx pcie endpoint DMA not functional for ZynqMP PS AXI-PXI DMA endpoint

https://bugzilla.kernel.org/show_bug.cgi?id=203435

Bjorn Helgaas (bhelgaas@google.com) changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
                 CC|                            |bhelgaas@google.com
         Resolution|---                         |INVALID

--- Comment #1 from Bjorn Helgaas (bhelgaas@google.com) --- I forwarded this to linux-pci and some Xilinx and DMA engine folks in case they have some insight.  But since Vivado and drivers/dma/xilinx/xilinx_ps_pcie_platform.c don't seem to be in mainline Linux, I suspect this report should be directed to Xilinx.

I'm closing this for now on the assumption that it isn't applicable to upstream Linux, but please reopen with more details if I'm mistaken.

--
You are receiving this mail because:
You reported the bug.=

Note You need to log in before you can comment on or make changes to this bug.