Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
100 changes: 100 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
# Linux Kernel Module Build Files
*.o
*.ko
*.mod
*.mod.c
*.order
*.symvers
*.cmd
.tmp_versions/
modules.order
Module.symvers

# Kernel module specific
*.ko.unsigned
*.ko.cmd

# Object files
*.o.cmd
*.mod.o
*.mod.o.cmd

# Compiled binaries (tools)
XDMA/linux-kernel/tools/dma_from_device
XDMA/linux-kernel/tools/dma_to_device
XDMA/linux-kernel/tools/performance
XDMA/linux-kernel/tools/reg_rw
XDMA/linux-kernel/tools/test_chrdev
XDMA/linux-kernel/tools/*.o

# Editor and IDE files
*.swp
*.swo
*~
.*.sw?
.vscode/
.idea/
*.sublime-*
.DS_Store

# Backup files
*.bak
*.orig
*~

# Dependency files
*.d

# Generated documentation
*.html
*.pdf
/Documentation/DocBook/

# Patch files
*.patch
*.diff

# Compressed files
*.tar
*.tar.gz
*.tar.bz2
*.zip

# Core dumps
core

# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
venv/
env/
ENV/

# C/C++ build artifacts
*.a
*.la
*.lo
.libs/
.deps/

# Temporary files
*.tmp
*.temp
/tmp/

# Log files
*.log
*.out
*.err

# Test results
test_results/
*.test

# Personal notes and documentation
DRIVER_STATUS.md
notes.txt
TODO.txt
25 changes: 24 additions & 1 deletion QDMA/DPDK/RELEASE
Original file line number Diff line number Diff line change
@@ -1,3 +1,22 @@
RELEASE: 2024.1
=================

This release is based on DPDK v20.11, v21.11, v22.11 and v23.11 and
contains QDMA poll mode driver and QDMA test application.

This release is validated for
- On VCU118 for QDMA5.0 2022.1 example design
- On XCVP1202 for CPM5 2022.1 example design
- On XCVC1902 for CPM4 2022.1 example design

This release includes patch files for dpdk-pktgen v20.12.0, v22.04.1 and v24.03.1 that extends
dpdk-pktgen application to handle packets with packet sizes more than 1518 bytes
and it disables the packet size classification logic in dpdk-pktgen to remove
application overhead in performance measurement.This patch is used for
performance testing with dpdk-pktgen application.

The driver is validated against dpdk-pktgen and testpmd applications for API compliance.

RELEASE: 2023.2.1
=================

Expand Down Expand Up @@ -136,6 +155,10 @@ CPM5
----------------
- Added support for latency measurements in Tx and Rx data path for VF

2024.1 Updates
--------------
- Migrated QDMA dpdk driver to Support DPDK framework v23.11

KNOWN ISSUE:
============
- CPM4:
Expand Down Expand Up @@ -165,7 +188,7 @@ DRIVER LIMITATIONS:
* BSD LICENSE
*
* Copyright (c) 2017-2022 Xilinx, Inc. All rights reserved.
* Copyright (c) 2022-2023, Advanced Micro Devices, Inc. All rights reserved.
* Copyright (c) 2022-2024, Advanced Micro Devices, Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
Expand Down
19 changes: 9 additions & 10 deletions QDMA/DPDK/docs/README.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,40 +15,39 @@ Contents
_____________________________________________________________________________


Note: This DPDK driver and applciation were tested on Ubuntu 18.04 machine.
Note: This DPDK driver and applciation were tested on Ubuntu 22.04.1 machine.


1.) Setup: Download and modifications

The reference driver code requires DPDK version 22.11.
The reference driver code requires DPDK version 23.11.
Follow the steps below to download the proper version of DPDK and apply
driver code and test application supplied in the GitHub.

Extract the DPDK driver software database from the Xilinx GitHub to the server where VCU1525
Extract the DPDK driver software database from the Xilinx GitHub to the server where VCU118
is installed. Henceforth, this area is referred as <dpdk_sw_database>.

Create a directory for the DPDK download on the server where the VCU1525
Create a directory for the DPDK download on the server where the VCU118
is installed and move to this directory.

$ mkdir <server_dir>/<dpdk_test_area>
$ cd <server_dir>/<dpdk_test_area>
$ git clone http://dpdk.org/git/dpdk-stable
$ cd dpdk-stable
$ git checkout v22.11
$ git checkout v23.11
$ git clone git://dpdk.org/dpdk-kmods
$ cp -r <dpdk_sw_database>/drivers/net/qdma ./drivers/net/
$ cp -r <dpdk_sw_database>/examples/qdma_testapp ./examples/

Additionally, make below changes to the DPDK 22.11 tree to build QDMA driver,
Additionally, make below changes to the DPDK 23.11 tree to build QDMA driver,
support 4K queues and populate Xilinx devices for binding.

i. Add QDMA driver
a. To support 4K queues and 256 PCIe functions, update below configurations in ./config/rte_config.h
CONFIG_RTE_MAX_MEMZONE=40960
CONFIG_RTE_MAX_ETHPORTS=256
CONFIG_RTE_MAX_QUEUES_PER_PORT=4096

b. Add below lines to ./config/meson.build in DPDK 22.11 tree
b. Add below lines to ./config/meson.build in DPDK 23.11 tree
# Set maximum Ethernet ports to 256
dpdk_conf.set('RTE_MAX_ETHPORTS', 256)

Expand Down Expand Up @@ -100,7 +99,7 @@ The following modifications must be made to the /boot/grub/grub.cfg on the host
ninja
ninja install
ldconfig

- The following should appear when ninja completes
Linking target app/test/dpdk-test.

Expand Down Expand Up @@ -526,7 +525,7 @@ Two ports:
* BSD LICENSE
*
* Copyright (c) 2017-2022 Xilinx, Inc. All rights reserved.
* Copyright (c) 2022-2023, Advanced Micro Devices, Inc. All rights reserved.
* Copyright (c) 2022-2024, Advanced Micro Devices, Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
Expand Down
7 changes: 4 additions & 3 deletions QDMA/DPDK/drivers/net/qdma/meson.build
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# BSD LICENSE
#
# Copyright (c) 2021-2022 Xilinx, Inc. All rights reserved.
# Copyright (c) 2022-2023, Advanced Micro Devices, Inc. All rights reserved.
# Copyright (c) 2022-2024, Advanced Micro Devices, Inc. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
Expand Down Expand Up @@ -33,10 +33,11 @@ cflags += ['-DRTE_LIBRTE_QDMA_PMD']
cflags += ['-DDMA_BRAM_SIZE=524288']
cflags += ['-DTHROUGHPUT_MEASUREMENT']

# Use QDMA_DPDK_23_11 compiler flag for DPDK v23.11
# Use QDMA_DPDK_22_11 compiler flag for DPDK v22.11
# Use QDMA_DPDK_21_11 compiler flag for DPDK v21.11
# Use QDMA_DPDK_20_11 compiler flag for DPDK v20.11
cflags += ['-DQDMA_DPDK_22_11']
cflags += ['-DQDMA_DPDK_23_11']

includes += include_directories('.')
includes += include_directories('qdma_access')
Expand Down Expand Up @@ -76,4 +77,4 @@ sources = files(

if arch_subdir == 'x86'
sources += files('qdma_rxtx_vec_sse.c')
endif
endif
2 changes: 1 addition & 1 deletion QDMA/DPDK/drivers/net/qdma/qdma.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
* BSD LICENSE
*
* Copyright (c) 2017-2022 Xilinx, Inc. All rights reserved.
* Copyright (c) 2022-2023, Advanced Micro Devices, Inc. All rights reserved.
* Copyright (c) 2022-2024, Advanced Micro Devices, Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
Expand Down
Loading