From: Lizhi Hou <lizhi.hou@amd.com>
To: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: <nishad.saraf@amd.com>, <vkoul@kernel.org>,
<dmaengine@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
Nishad Saraf <nishads@amd.com>, <sonal.santan@amd.com>,
<max.zhen@amd.com>
Subject: Re: [PATCH V12 1/1] dmaengine: amd: qdma: Add AMD QDMA driver
Date: Fri, 27 Sep 2024 11:18:48 -0700 [thread overview]
Message-ID: <420b4788-a054-ce74-29c9-eb8f1b7aa173@amd.com> (raw)
In-Reply-To: <CAMuHMdVChqbMLN2vdc4iZ7iZ8+dz07k4pVOM_SfZarHWV93JqQ@mail.gmail.com>
Hi Geert,
On 9/27/24 02:01, Geert Uytterhoeven wrote:
> Hi Lizhi,
>
> On Tue, Sep 3, 2024 at 6:50 PM Lizhi Hou <lizhi.hou@amd.com> wrote:
>> On 9/3/24 02:20, Geert Uytterhoeven wrote:
>>> On Thu, Apr 18, 2024 at 7:51 PM Lizhi Hou <lizhi.hou@amd.com> wrote:
>>>> From: Nishad Saraf <nishads@amd.com>
>>>>
>>>> Adds driver to enable PCIe board which uses AMD QDMA (the Queue-based
>>>> Direct Memory Access) subsystem. For example, Xilinx Alveo V70 AI
>>>> Accelerator devices.
>>>> https://www.xilinx.com/applications/data-center/v70.html
>>>>
>>>> The QDMA subsystem is used in conjunction with the PCI Express IP block
>>>> to provide high performance data transfer between host memory and the
>>>> card's DMA subsystem.
>>>>
>>>> +-------+ +-------+ +-----------+
>>>> PCIe | | | | | |
>>>> Tx/Rx | | | | AXI | |
>>>> <=======> | PCIE | <===> | QDMA | <====>| User Logic|
>>>> | | | | | |
>>>> +-------+ +-------+ +-----------+
>>>>
>>>> The primary mechanism to transfer data using the QDMA is for the QDMA
>>>> engine to operate on instructions (descriptors) provided by the host
>>>> operating system. Using the descriptors, the QDMA can move data in both
>>>> the Host to Card (H2C) direction, or the Card to Host (C2H) direction.
>>>> The QDMA provides a per-queue basis option whether DMA traffic goes
>>>> to an AXI4 memory map (MM) interface or to an AXI4-Stream interface.
>>>>
>>>> The hardware detail is provided by
>>>> https://docs.xilinx.com/r/en-US/pg302-qdma
>>>>
>>>> Implements dmaengine APIs to support MM DMA transfers.
>>>> - probe the available DMA channels
>>>> - use dma_slave_map for channel lookup
>>>> - use virtual channel to manage dmaengine tx descriptors
>>>> - implement device_prep_slave_sg callback to handle host scatter gather
>>>> list
>>>>
>>>> Signed-off-by: Nishad Saraf <nishads@amd.com>
>>>> Signed-off-by: Lizhi Hou <lizhi.hou@amd.com>
>>> Thanks for your patch, which is now commit 73d5fc92a11cacb7
>>> ("dmaengine: amd: qdma: Add AMD QDMA driver") in dmaengine/next.
>>>
>>>> --- /dev/null
>>>> +++ b/drivers/dma/amd/Kconfig
>>>> @@ -0,0 +1,14 @@
>>>> +# SPDX-License-Identifier: GPL-2.0-only
>>>> +
>>>> +config AMD_QDMA
>>>> + tristate "AMD Queue-based DMA"
>>>> + depends on HAS_IOMEM
>>> Any other subsystem or platform dependencies, to prevent asking the
>>> user about this driver when configuring a kernel for a system which
>>> cannot possibly have this hardware?
>>> E.g. depends on PCI, or can this be used with other transports than PCIe?
>> No, this driver does not have other dependencies. It can be used with
>> other transports.
>>
>> It is similar with dmaengine/xilinx/xdma
> OK.
>
>>>> --- /dev/null
>>>> +++ b/drivers/dma/amd/qdma/qdma-comm-regs.c
>>>> +static struct platform_driver amd_qdma_driver = {
>>>> + .driver = {
>>>> + .name = "amd-qdma",
>>> Which code is responsible for creating "amd-qdma" platform devices?
> I still would like to receive an answer to this question?
> Thanks!
Sorry, I missed this question.
The driver of device which uses qdma IP will create amd-qdma platform
device. E.g. for our FPGA device:
https://github.com/houlz0507/XRT-1/blob/qdma_v2_usage/src/runtime_src/core/pcie/driver/linux/xocl/subdev/qdma.c#L614
Thanks,
Lizhi
>
>
> Gr{oetje,eeting}s,
>
> Geert
>
> --
> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
>
> In personal conversations with technical people, I call myself a hacker. But
> when I'm talking to journalists I just say "programmer" or something like that.
> -- Linus Torvalds
prev parent reply other threads:[~2024-09-27 18:18 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-18 17:50 [PATCH V12 0/1] " Lizhi Hou
2024-04-18 17:50 ` [PATCH V12 1/1] dmaengine: amd: qdma: Add " Lizhi Hou
2024-09-03 9:20 ` Geert Uytterhoeven
2024-09-03 16:50 ` Lizhi Hou
2024-09-27 9:01 ` Geert Uytterhoeven
2024-09-27 18:18 ` Lizhi Hou [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=420b4788-a054-ce74-29c9-eb8f1b7aa173@amd.com \
--to=lizhi.hou@amd.com \
--cc=dmaengine@vger.kernel.org \
--cc=geert@linux-m68k.org \
--cc=linux-kernel@vger.kernel.org \
--cc=max.zhen@amd.com \
--cc=nishad.saraf@amd.com \
--cc=nishads@amd.com \
--cc=sonal.santan@amd.com \
--cc=vkoul@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®