RE: PCIe dmaengine driver on both x86 and ARM64

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



+AD4- On Fri, 2016-11-04 at 14:37 +-0000, Bharat Kumar Gogada wrote:
+AD4- +AD4- +AD4-
+AD4- +AD4- +AD4- On Fri, 2016-11-04 at 12:16 +-0000, Bharat Kumar Gogada wrote:
+AD4- +AD4- +AD4- +AD4-
+AD4- +AD4- +AD4- +AD4- +AD4-
+AD4- +AD4- +AD4- +AD4- +AD4-
+AD4- +AD4- +AD4- +AD4- +AD4- On Thu, Oct 27, 2016 at 02:31:08PM +-0000, Bharat Kumar Gogada
+AD4- +AD4- +AD4- +AD4- +AD4- wrote:
+AD4- +AD4- +AD4- +AD4- +AD4- +AD4-
+AD4- +AD4- +AD4- +AD4- +AD4- +AD4-
+AD4- +AD4- +AD4- +AD4- +AD4- +AD4- +AD4-
+AD4- +AD4- +AD4- +AD4- +AD4- +AD4- +AD4-
+AD4- +AD4- +AD4- +AD4- +AD4- +AD4- +AD4- On Thu, Oct 27, 2016 at 12:57:08PM +-0000, Bharat Kumar
+AD4- +AD4- +AD4- +AD4- +AD4- +AD4- +AD4- Gogada
+AD4- +AD4- +AD4- +AD4- +AD4- +AD4- +AD4- wrote:
+AD4- +AD4- +AD4- +AD4- +AD4- +AD4- +AD4- +AD4-
+AD4- +AD4- +AD4- +AD4- +AD4- +AD4- +AD4- +AD4-
+AD4- +AD4- +AD4- +AD4- +AD4- +AD4- +AD4- +AD4- Hi All,
+AD4- +AD4- +AD4- +AD4- +AD4- +AD4- +AD4- +AD4-
+AD4- +AD4- +AD4- +AD4- +AD4- +AD4- +AD4- +AD4- We have a PCIe end point with DMA controller in it.
+AD4- +AD4- +AD4- +AD4- +AD4- +AD4- +AD4- +AD4- We are planning to code using DMA frame work for this DMA
+AD4- +AD4- +AD4- +AD4- +AD4- +AD4- +AD4- +AD4- controller.
+AD4- +AD4- +AD4- +AD4- +AD4- +AD4- +AD4- +AD4-
+AD4- +AD4- +AD4- +AD4- +AD4- +AD4- +AD4- +AD4- The PCIe End Point can be used on both ARM64 and x86
+AD4- +AD4- +AD4- +AD4- +AD4- +AD4- +AD4- +AD4- platforms.
+AD4- +AD4- +AD4- +AD4- +AD4- +AD4- +AD4- +AD4-
+AD4- +AD4- +AD4- +AD4- +AD4- +AD4- +AD4- +AD4- We are planning to develop dmaengine driver and client
+AD4- +AD4- +AD4- +AD4- +AD4- +AD4- +AD4- +AD4- driver model.
+AD4- +AD4- +AD4- +AD4- +AD4- +AD4- +AD4- +AD4-
+AD4- +AD4- +AD4- +AD4- +AD4- +AD4- +AD4- +AD4- In ARM64 case dmaengine driver and client driver are
+AD4- +AD4- +AD4- +AD4- +AD4- +AD4- +AD4- +AD4- probed using device tree and also channel information is
+AD4- +AD4- +AD4- +AD4- +AD4- +AD4- +AD4- +AD4- also obtained from device tree.
+AD4- +AD4- +AD4- +AD4- +AD4- +AD4- +AD4- I think more details are necessary here.
+AD4- +AD4- +AD4- +AD4- +AD4- +AD4- +AD4-
+AD4- +AD4- +AD4- +AD4- +AD4- +AD4- +AD4- Why is +ACo-anything+ACo- necessary in the DT if this is contained
+AD4- +AD4- +AD4- +AD4- +AD4- +AD4- +AD4- within a
+AD4- +AD4- +AD4- +AD4- +AD4- +AD4- +AD4- (probeable) PCIe endpoint?
+AD4- +AD4- +AD4- +AD4- +AD4- +AD4- Thanks Mark.
+AD4- +AD4- +AD4- +AD4- +AD4- +AD4-
+AD4- +AD4- +AD4- +AD4- +AD4- +AD4- Yes as you said it is PCIe probeable device, sorry I missed
+AD4- +AD4- +AD4- +AD4- +AD4- +AD4- some information, in
+AD4- +AD4- +AD4- +AD4- +AD4- case of ARM64
+AD4- +AD4- +AD4- +AD4- +AD4- +AD4-
+AD4- +AD4- +AD4- +AD4- +AD4- +AD4-
+AD4- +AD4- +AD4- +AD4- +AD4- +AD4- if we invoke client driver from device tree where we can pass
+AD4- +AD4- +AD4- +AD4- +AD4- +AD4- channel
+AD4- +AD4- +AD4- +AD4- +AD4- information
+AD4- +AD4- +AD4- +AD4- +AD4- +AD4-
+AD4- +AD4- +AD4- +AD4- +AD4- +AD4-
+AD4- +AD4- +AD4- +AD4- +AD4- +AD4- such as number of channels, direction and other things.+AKAAoA-So in
+AD4- +AD4- +AD4- +AD4- +AD4- +AD4- this case how
+AD4- +AD4- +AD4- +AD4- +AD4- will client driver request
+AD4- +AD4- +AD4- +AD4- +AD4- +AD4-
+AD4- +AD4- +AD4- +AD4- +AD4- +AD4-
+AD4- +AD4- +AD4- +AD4- +AD4- +AD4- the channel it want to use, to dmaengine driver ?
+AD4- +AD4- +AD4- +AD4- +AD4- +AD4-
+AD4- +AD4- +AD4- +AD4- +AD4- +AD4- In case of x86 on what basis client driver can be probed and
+AD4- +AD4- +AD4- +AD4- +AD4- +AD4- request the dma
+AD4- +AD4- +AD4- +AD4- +AD4- channels, if we already use
+AD4- +AD4- +AD4- +AD4- +AD4- +AD4-
+AD4- +AD4- +AD4- +AD4- +AD4- +AD4-
+AD4- +AD4- +AD4- +AD4- +AD4- +AD4- Vendor and device id for dmaengine driver ?
+AD4- +AD4- +AD4- +AD4- +AD4- ACPI what else..
+AD4- +AD4- +AD4- +AD4- +AD4-
+AD4- +AD4- +AD4- +AD4- +AD4- You can the request lines in client ACPI data and it can use to
+AD4- +AD4- +AD4- +AD4- +AD4- filter the request. There are already dmaengine drivers which
+AD4- +AD4- +AD4- +AD4- +AD4- use ACPI, so please check the source..
+AD4- +AD4- +AD4- +AD4- +AD4-
+AD4- +AD4- +AD4- +AD4- Thanks vinod.
+AD4- +AD4- +AD4- +AD4-
+AD4- +AD4- +AD4- +AD4- We have+AKAAoA-a scenario where DMA client driver needs to access PCI
+AD4- +AD4- +AD4- +AD4- bars of end point, but the DMA core driver is the one which has
+AD4- +AD4- +AD4- +AD4- access to pcie resources. Is there any way we can pass this bar
+AD4- +AD4- +AD4- +AD4- information to client driver through DMA framework ?
+AD4- +AD4- +AD4- Is the BAR a dma transaction address (src/dstn) or a resource for
+AD4- +AD4- +AD4- the DMA controller?
+AD4- +AD4- +AD4-
+AD4- +AD4- It is end point specific logic that is mapped to other bars (One bar
+AD4- +AD4- will be as dma resource), these can be IP specific registers like
+AD4- +AD4- statistics, so how can the client driver have access these resources ?
+AD4- 
+AD4- So if you are ACPI device then this should be an ACPI resource...
+AD4- 
+AD4- This is not dmaengine API issue...
+AD4- 
Thanks Vinod. 

We are planning to pass bar details to client driver using private pointer in
dma+AF8-chan using either of the following:
1. By passing a structure with required bar physical addresses. 
2. By providing read/write function pointers to specific bar +ACY- offset (The functions will take care 
not to access dma channel specific locations used by dma core driver)

I want to know whether these are acceptable or not. 

Thanks +ACY- Regards,
Bharat  


--
To unsubscribe from this list: send the line "unsubscribe dmaengine" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux PCI]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux