From: Yidong Zhang <yidong.zhang@amd.com>
To: <linux-kernel@vger.kernel.org>, <linux-fpga@vger.kernel.org>,
<mdf@kernel.org>, <hao.wu@intel.com>, <yilun.xu@intel.com>
Cc: Yidong Zhang <yidong.zhang@amd.com>, <lizhi.hou@amd.com>
Subject: [PATCH V2 0/4] Add versal-pci driver
Date: Tue, 10 Dec 2024 10:37:29 -0800 [thread overview]
Message-ID: <20241210183734.30803-1-yidong.zhang@amd.com> (raw)
This patchset introduces a new Linux Kernel Driver, versal-pci for AMD
Alevo Versal based PCIe Card. The driver is based on Linux fpga driver
framework.
The AMD Alevo Versal based PCIe Card, including V70, is the first Alevo
production card leveraging AMD XDNA architecture with AI Engines. It is
designed for AI inference efficiency and is tuned for video analytics and
natural language processing applications [1].
This versal-pci driver provides services, including:
- leveraging linux firmware and FPGA framework to download management
firmware
- program additional bit-streams for AMD Xilinx specific hardware
- communicate with PCIe user function
- communicate with firmware running on the PCIe Card
- monitor device health
The driver is licensed under GPL-2.0.
The firmware and bit-streams are distributed as a closed binary, delivered
by AMD. Please see [1] for more information.
[1] https://www.amd.com/en/products/accelerators/alveo/v70.html
Refactor driver to address all comments from v1.
Changes since v1:
- Add driver architecture description.
- Change the driver name to versal-pci
- Remove unnecessary memcpy in versal-pci-comm-chan.c
- Keep mod_timer because we need single_threaded_queue with delayed_work.
- Change the "comms" to "comm_chan".
- Remove regmap, use base+offset directly.
- Add skeleton ops with on implementation (TODO) for fpga_manager in early
patch (0001) and add implementation in later patch(0004).
- Remove br_ops and FPGA region, no need.
- Add load_xclbin request from user PF driver via comm_chan service, and
read firmware from local cached data.
- Remove pcim_iomap_table and pcim_iomap_regions. Use pcim_iomap_region.
- Redo patches, remove no-used definitions for each patch itself. Use
/* TODO */ to mark dependencies that will be addressed in later patch.
- Fix memory leak in rm_check_health.
- Fix cmd with error status in rm_check_health.
- Change to vzalloc in all places.
- Add rm_queue_withdraw_cmd in fw_cancel.
Yidong Zhang (4):
drivers/fpga/amd: Add new driver amd versal-pci
drivers/fpga/amd: Add communication channel
drivers/fpga/amd: Add remote queue
drivers/fpga/amd: Add load xclbin and load firmware
MAINTAINERS | 6 +
drivers/fpga/Kconfig | 3 +
drivers/fpga/Makefile | 3 +
drivers/fpga/amd/Kconfig | 15 +
drivers/fpga/amd/Makefile | 8 +
drivers/fpga/amd/versal-pci-comm-chan.c | 271 ++++++++++++
drivers/fpga/amd/versal-pci-comm-chan.h | 14 +
drivers/fpga/amd/versal-pci-main.c | 445 ++++++++++++++++++++
drivers/fpga/amd/versal-pci-rm-queue.c | 324 +++++++++++++++
drivers/fpga/amd/versal-pci-rm-queue.h | 21 +
drivers/fpga/amd/versal-pci-rm-service.c | 497 +++++++++++++++++++++++
drivers/fpga/amd/versal-pci-rm-service.h | 229 +++++++++++
drivers/fpga/amd/versal-pci.h | 90 ++++
13 files changed, 1926 insertions(+)
create mode 100644 drivers/fpga/amd/Kconfig
create mode 100644 drivers/fpga/amd/Makefile
create mode 100644 drivers/fpga/amd/versal-pci-comm-chan.c
create mode 100644 drivers/fpga/amd/versal-pci-comm-chan.h
create mode 100644 drivers/fpga/amd/versal-pci-main.c
create mode 100644 drivers/fpga/amd/versal-pci-rm-queue.c
create mode 100644 drivers/fpga/amd/versal-pci-rm-queue.h
create mode 100644 drivers/fpga/amd/versal-pci-rm-service.c
create mode 100644 drivers/fpga/amd/versal-pci-rm-service.h
create mode 100644 drivers/fpga/amd/versal-pci.h
--
2.34.1
next reply other threads:[~2024-12-10 18:37 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-10 18:37 Yidong Zhang [this message]
2024-12-10 18:37 ` [PATCH V2 1/4] drivers/fpga/amd: Add new driver amd versal-pci Yidong Zhang
2025-01-26 9:24 ` Xu Yilun
2025-01-26 19:50 ` Yidong Zhang
2025-01-26 10:12 ` Christophe JAILLET
2025-01-26 19:56 ` Yidong Zhang
2025-01-26 10:16 ` Christophe JAILLET
2025-01-26 10:32 ` Xu Yilun
2025-01-26 19:46 ` Yidong Zhang
2025-02-06 4:15 ` Xu Yilun
2025-02-06 4:31 ` Yidong Zhang
2025-02-07 2:19 ` Xu Yilun
2025-02-07 3:16 ` Yidong Zhang
2025-02-07 4:40 ` Xu Yilun
2025-02-10 11:33 ` Yidong Zhang
2025-02-11 9:09 ` Xu Yilun
2025-02-11 11:31 ` Yidong Zhang
2025-03-01 8:20 ` Xu Yilun
2025-03-01 19:03 ` Yidong Zhang
2025-03-03 7:57 ` Xu Yilun
2025-03-03 17:00 ` Yidong Zhang
2024-12-10 18:37 ` [PATCH V2 2/4] drivers/fpga/amd: Add communication channel Yidong Zhang
2025-01-26 10:19 ` Christophe JAILLET
2025-01-26 19:57 ` Yidong Zhang
2024-12-10 18:37 ` [PATCH V2 3/4] drivers/fpga/amd: Add remote queue Yidong Zhang
2025-01-26 10:24 ` Christophe JAILLET
2024-12-10 18:37 ` [PATCH V2 4/4] drivers/fpga/amd: Add load xclbin and load firmware Yidong Zhang
2025-01-26 9:27 ` [PATCH V2 0/4] Add versal-pci driver Xu Yilun
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=20241210183734.30803-1-yidong.zhang@amd.com \
--to=yidong.zhang@amd.com \
--cc=hao.wu@intel.com \
--cc=linux-fpga@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lizhi.hou@amd.com \
--cc=mdf@kernel.org \
--cc=yilun.xu@intel.com \
/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®