Skip to content

Commit 0989a0f

Browse files
nikolaishieldssmira
authored andcommitted
feat: add Xilinx DMA driver extension
See siderolabs/pkgs#1194 Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com> Signed-off-by: Nikolai Shields <nshields@dwavesys.com>
1 parent 21ef90a commit 0989a0f

File tree

9 files changed

+86
-4
lines changed

9 files changed

+86
-4
lines changed

.kres.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ spec:
5757
- vc4
5858
- vmtoolsd-guest-agent
5959
- wasmedge
60+
- xdma-driver
6061
- xen-guest-agent
6162
- zerotier
6263
- zfs
@@ -76,7 +77,7 @@ spec:
7677
- name: EXTENSIONS_IMAGE_REF
7778
defaultValue: $(REGISTRY_AND_USERNAME)/extensions:$(TAG)
7879
- name: PKGS
79-
defaultValue: v1.10.0-alpha.0-71-ge9a260a
80+
defaultValue: v1.10.0-alpha.0-72-g7d7323b
8081
- name: PKGS_PREFIX
8182
defaultValue: ghcr.io/siderolabs
8283
- name: TOOLS

MAINTAINERS.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,11 @@ If you are interested in becoming a maintainer, please reach out to the current
66

77
If the field is marked as `Needs Maintainer`, it means that the package is currently unmaintained. If you are interested in maintaining the package, please reach out to the current maintainers/create a GitHub issue.
88

9-
# Maintainers
9+
## Maintainers
1010

1111
| Name | Maintainer | Github ID |
1212
| ----------------------------------------- | ------------------ | -------------------------------------------------------------------- |
13+
| amazon-ena | Sidero Labs | NA |
1314
| amdgpu | Sidero Labs | NA |
1415
| amd-ucode | Sidero Labs | NA |
1516
| binfmt-misc | Serge Logvinov | [sergelogvinov](https://github.com/sergelogvinov) |
@@ -63,6 +64,7 @@ If the field is marked as `Needs Maintainer`, it means that the package is curre
6364
| vc4 | Jorn Vanthienen | [Jorn Vanthienen](https://github.com/jvanthienen-gluo) |
6465
| vmtoolsd-guest-agent | Robin Elfrink | [robinelfrink](https://github.com/robinelfrink) |
6566
| wasmedge | Sidero Labs | NA |
67+
| xdma-driver | Nikolai Shields | [nikolaishields](https://github.com/nikolaishields) |
6668
| xen-guest-agent | Jerwin NJ | [j3rwin](https://github.com/j3rwin) |
6769
| zerotier | rob-htl | [rob-htl](https://github.com/rob-htl) |
6870
| zfs | Aenix, Enix | [kvaps](https://github.com/kvaps), [donch](https://github.com/donch) |

Makefile

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT.
22
#
3-
# Generated on 2025-03-31T09:46:13Z by kres d903dae.
3+
# Generated on 2025-04-01T08:20:01Z by kres d903dae.
44

55
# common variables
66

@@ -50,7 +50,7 @@ COMMON_ARGS += --build-arg=TOOLS_PREFIX="$(TOOLS_PREFIX)"
5050
# extra variables
5151

5252
EXTENSIONS_IMAGE_REF ?= $(REGISTRY_AND_USERNAME)/extensions:$(TAG)
53-
PKGS ?= v1.10.0-alpha.0-71-ge9a260a
53+
PKGS ?= v1.10.0-alpha.0-72-g7d7323b
5454
PKGS_PREFIX ?= ghcr.io/siderolabs
5555
TOOLS ?= v1.10.0-alpha.0-23-g6d456ca
5656
TOOLS_PREFIX ?= ghcr.io/siderolabs
@@ -112,6 +112,7 @@ TARGETS += v4l-uvc-drivers
112112
TARGETS += vc4
113113
TARGETS += vmtoolsd-guest-agent
114114
TARGETS += wasmedge
115+
TARGETS += xdma-driver
115116
TARGETS += xen-guest-agent
116117
TARGETS += zerotier
117118
TARGETS += zfs

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ cosign verify --certificate-identity-regexp '@siderolabs\.com$' --certificate-oi
8484
| [uinput](drivers/uinput/) | [ghcr.io/siderolabs/uinput](https://github.com/siderolabs/extensions/pkgs/container/uinput) | uinput drivers | `talos version` |
8585
| [usb-modem](drivers/usb-modem/) | [ghcr.io/siderolabs/usb-modem-drivers](https://github.com/siderolabs/extensions/pkgs/container/usb-modem-drivers) | USB Modem drivers | `talos version` |
8686
| [v4l-uvc](drivers/v4l-uvc/) | [ghcr.io/siderolabs/v4l-uvc-drivers](https://github.com/siderolabs/extensions/pkgs/container/v4l-uvc-drivers) | USB Video Class (Webcam) drivers | `talos version` |
87+
| [xdma-driver](drivers/xdma-driver/) | [ghcr.io/siderolabs/xdma-driver](https://github.com/siderolabs/extensions/pkgs/container/xdma-driver) | Xilinx PCIe DMA | `upstream-talos version` |
8788

8889
### Digital Video Broadcasting (DVB)
8990

drivers/xdma-driver/README.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# xdma-driver extension
2+
3+
This extension provides [Xilinx PCIe DMA](https://github.com/Xilinx/dma_ip_drivers/tree/master/XDMA/linux-kernel) drivers for Talos Linux.
4+
5+
## Installation
6+
7+
See [Installing Extensions](https://github.com/siderolabs/extensions#installing-extensions).
8+
9+
## Usage
10+
11+
```yaml
12+
machine:
13+
kernel:
14+
modules:
15+
- name: xdma
16+
```
17+
18+
## Verifying
19+
20+
You can verify the modules are enabled by reading the `/proc/modules` where it _should_ show the module is live.
21+
22+
For example:
23+
24+
```bash
25+
❯ talosctl read /proc/modules
26+
```
27+
28+
In addition, if you actually have XDMA module installed, you should be able to verify with the presence of character devices that begin with `/dev/xdma*`.
29+
30+
For example:
31+
32+
```bash
33+
❯ talosctl ls -l /dev/xdma*
34+
NODE MODE UID GID SIZE(B) LASTMOD NAME
35+
```

drivers/xdma-driver/manifest.yaml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
version: v1alpha1
2+
metadata:
3+
name: xdma-driver
4+
version: "$VERSION"
5+
author: Nikolai Shields
6+
description: |
7+
Xilinx DMA Driver
8+
compatibility:
9+
talos:
10+
version: ">= v1.2.0"

drivers/xdma-driver/pkg.yaml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
name: xdma-driver
2+
variant: scratch
3+
shell: /bin/bash
4+
dependencies:
5+
- stage: base
6+
# The pkgs version for a particular release of Talos as defined in
7+
# https://github.com/siderolabs/talos/blob/<talos version>/pkg/machinery/gendata/data/pkgs
8+
- image: "{{ .BUILD_ARG_PKGS_PREFIX }}/xdma-driver-pkg:{{ .BUILD_ARG_PKGS }}"
9+
steps:
10+
- prepare:
11+
- |
12+
sed -i 's#$VERSION#{{ .VERSION }}#' /pkg/manifest.yaml
13+
- install:
14+
- |
15+
mkdir -p /rootfs/usr/lib/modules
16+
17+
cp -R /usr/lib/modules/* /rootfs/usr/lib/modules
18+
- test:
19+
- |
20+
finalize:
21+
- from: /rootfs
22+
to: /rootfs
23+
- from: /pkg/manifest.yaml
24+
to: /

drivers/xdma-driver/vars.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# update when pkgs version is updated
2+
VERSION: "aefa9a1-{{ .BUILD_ARG_TAG }}"

hack/release.toml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,12 @@ The Amazon Elastic Network Adapter (ENA) driver is now supported as a system ext
6767
title = "vc4"
6868
description = """\
6969
The Broadcom VideoCore GPU kernel modules (vc4) are now supported as a system extension.
70+
"""
71+
72+
[notes.xdma]
73+
title = "Xilinx PCIe DMA"
74+
description = """\
75+
The Xilinx PCIe DMA kernel module (xdma-driver) is now supported as a system extension.
7076
"""
7177

7278
[make_deps]

0 commit comments

Comments
 (0)