From nobody Wed Mar 26 15:15:20 2025
X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZN9MX4qQMz5s45s;
Wed, 26 Mar 2025 15:15:20 +0000 (UTC)
(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
client-signature RSA-PSS (4096 bits) client-digest SHA256)
(Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK))
by mx1.freebsd.org (Postfix) with ESMTPS id 4ZN9MX2SyDz3JSC;
Wed, 26 Mar 2025 15:15:20 +0000 (UTC)
(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
t=1743002120;
h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
to:to:cc:mime-version:mime-version:content-type:content-type:
content-transfer-encoding:content-transfer-encoding;
bh=2dss2/GGlRBiwPBKyTxt+u8Y4z3cghG5GG+iD4ZW57Y=;
b=PV+D/y5XYiojWuGzwRFpYUTqQeE2UtPQPpj7SpJju90N8fJZZZF1cdsB8/19mnU8/V+OlS
TboBzn7kicFwAZSrAsmGCygnAJF7ij/jS89QAQRuF7bMyLnLMgvQgoCiF5syi9VLiokVXl
vHsPCXTzIrxrSDDepi94ILBeuGGE7xL2K1VtxZf5pIyLnL8FKg2ksvht16duj1f9uLjwZz
hfaqMnh5TwWLqcKc98L5ijfKZt9a4l+JPJpbBKJeWAaxbCZL0WgR8/Npjhc5dXSiHPzSvf
vxqP8xYhZDZJoAlDMMQtM+NdoJ58HBK5bHd0CMeDeUiQ8T7YQLmhF/cNReSRlw==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1743002120; a=rsa-sha256; cv=none;
b=l0lKWyP6g99doGiw4u2rTXa85np/Y6PBBf23rPrqZhmL3YrBtpjCOdJFXGd9PERME17DXd
jz0XEP2zZ0OrYs2k4duqlvJtM1UkYKCe0Hk167WmWGmrQYSTUbv4O5dB8gPjK5AUfKVyE+
EShLHNcWWC0Q3TQap7xj3hhpK57aKlP4Jc87L3aSx1gw3CgS/4kdESKz4CjyDb76foqb79
u8UU8Yez6GVcNOUVJjCiBnFYCS6uUmizP+VYwIBqYxkUAnqPY7jpLh2hP+orLSg2Op8IEG
fh1gcefAejTyvjSrlruhAT4sybQqUVT31U55Rw55StZaG14dfY77B/q+VMKbSA==
ARC-Authentication-Results: i=1;
mx1.freebsd.org;
none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
s=dkim; t=1743002120;
h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
to:to:cc:mime-version:mime-version:content-type:content-type:
content-transfer-encoding:content-transfer-encoding;
bh=2dss2/GGlRBiwPBKyTxt+u8Y4z3cghG5GG+iD4ZW57Y=;
b=cN88lZ7MW+CeDlTTG4sIppFpUlqn8qtTseQcHTBM91KfxlINijDJKdxxJEs4wGft9NCaUd
kmARFgabda24RTYcubjX75XyXvt0scOSPd+7yBqysn+kqv2IaWGN5sn2LMHSzBhkEAcGEk
xc4xFrVOApEYd6c8w/yJrzm4xLPHK9vvHD2Sk9jy/6Q4l4wjNg/TobpLNBy5K/VAMTUfMq
Z83zfIfoCv9rIEEXpEka9tZtxW52beJo7ecrXUPgVHZODhVZYQ6JrqUnKbC8EvnZniva1z
n0jHY+c875g5vJv2V959GMT0fl3gAs83vAwmx+dOkt7aaJ3kV5uKrup2K153Jg==
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
(Client did not present a certificate)
by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZN9MX21cWz1dh;
Wed, 26 Mar 2025 15:15:20 +0000 (UTC)
(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 52QFFKVi097130;
Wed, 26 Mar 2025 15:15:20 GMT
(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 52QFFKfo097127;
Wed, 26 Mar 2025 15:15:20 GMT
(envelope-from git)
Date: Wed, 26 Mar 2025 15:15:20 GMT
Message-Id: <202503261515.52QFFKfo097127@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
dev-commits-src-main@FreeBSD.org
From: Ruslan Bukin
Subject: git: 3969b51ffa1c - main - xilinx axi ethernet: allocate
memory for buffers.
List-Id: Commit messages for all branches of the src repository
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all
List-Help:
List-Post:
List-Subscribe:
List-Unsubscribe:
X-BeenThere: dev-commits-src-all@freebsd.org
Sender: owner-dev-commits-src-all@FreeBSD.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: br
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: 3969b51ffa1ca8c863d9a9ddb85ad18aaf2c030c
Auto-Submitted: auto-generated
The branch main has been updated by br:
URL: https://cgit.FreeBSD.org/src/commit/?id=3969b51ffa1ca8c863d9a9ddb85ad18aaf2c030c
commit 3969b51ffa1ca8c863d9a9ddb85ad18aaf2c030c
Author: Ruslan Bukin
AuthorDate: 2025-03-26 14:52:29 +0000
Commit: Ruslan Bukin
CommitDate: 2025-03-26 15:14:13 +0000
xilinx axi ethernet: allocate memory for buffers.
The xae(9) driver expects that the "memory-region" property is always
provided in its DTS node, but this is not a case for every platform.
If the property is not provided, then no restriction on buffer location
is in place and busdma backend could be used.
Since the Xilinx AXI DMA engine driver does not support busdma(9), then
allocate some memory for buffers manually, so we don't panic.
This fixes operation on Codasip A730.
---
sys/dev/xilinx/if_xae.c | 22 ++++++++++++++++++----
1 file changed, 18 insertions(+), 4 deletions(-)
diff --git a/sys/dev/xilinx/if_xae.c b/sys/dev/xilinx/if_xae.c
index 080b13606525..97e7aa16dda4 100644
--- a/sys/dev/xilinx/if_xae.c
+++ b/sys/dev/xilinx/if_xae.c
@@ -1,7 +1,7 @@
/*-
* SPDX-License-Identifier: BSD-2-Clause
*
- * Copyright (c) 2019 Ruslan Bukin
+ * Copyright (c) 2019-2025 Ruslan Bukin
*
* This software was developed by SRI International and the University of
* Cambridge Computer Laboratory (Department of Computer Science and
@@ -43,6 +43,9 @@
#include
#include
+#include
+#include
+
#include
#include
#include
@@ -94,6 +97,7 @@
#define NUM_RX_MBUF 16
#define BUFRING_SIZE 8192
#define MDIO_CLK_DIV_DEFAULT 29
+#define BUF_NPAGES 512
#define PHY1_RD(sc, _r) \
xae_miibus_read_reg(sc->dev, 1, _r)
@@ -834,6 +838,8 @@ setup_xdma(struct xae_softc *sc)
{
device_t dev;
vmem_t *vmem;
+ vm_paddr_t phys;
+ vm_page_t m;
int error;
dev = sc->dev;
@@ -886,11 +892,19 @@ setup_xdma(struct xae_softc *sc)
/* Setup bounce buffer */
vmem = xdma_get_memory(dev);
- if (vmem) {
- xchan_set_memory(sc->xchan_tx, vmem);
- xchan_set_memory(sc->xchan_rx, vmem);
+ if (!vmem) {
+ m = vm_page_alloc_noobj_contig(VM_ALLOC_WIRED | VM_ALLOC_ZERO,
+ BUF_NPAGES, 0, BUS_SPACE_MAXADDR_32BIT, PAGE_SIZE, 0,
+ VM_MEMATTR_DEFAULT);
+ phys = VM_PAGE_TO_PHYS(m);
+ vmem = vmem_create("xdma vmem", 0, 0, PAGE_SIZE, PAGE_SIZE,
+ M_BESTFIT | M_WAITOK);
+ vmem_add(vmem, phys, BUF_NPAGES * PAGE_SIZE, 0);
}
+ xchan_set_memory(sc->xchan_tx, vmem);
+ xchan_set_memory(sc->xchan_rx, vmem);
+
xdma_prep_sg(sc->xchan_tx,
TX_QUEUE_SIZE, /* xchan requests queue size */
MCLBYTES, /* maxsegsize */