Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 1 May 2020 18:36:49 +0000 (UTC)
From:      Warner Losh <imp@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r360543 - head/stand/libofw
Message-ID:  <202005011836.041Ianpm090689@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: imp
Date: Fri May  1 18:36:48 2020
New Revision: 360543
URL: https://svnweb.freebsd.org/changeset/base/360543

Log:
  Redo r360540 to retain the ifndef sparc code, not delete it.
  
  Also undo the BROKEN stuff, since it was based on the same misreading.
  
  Noticed by: Jens Schweikhardt

Modified:
  head/stand/libofw/ofw_net.c

Modified: head/stand/libofw/ofw_net.c
==============================================================================
--- head/stand/libofw/ofw_net.c	Fri May  1 18:27:14 2020	(r360542)
+++ head/stand/libofw/ofw_net.c	Fri May  1 18:36:48 2020	(r360543)
@@ -73,9 +73,7 @@ struct netif_driver ofwnet = {
 
 static ihandle_t	netinstance;
 
-#ifdef BROKEN
 static void		*dmabuf;
-#endif
 
 static int
 ofwn_match(struct netif *nif, void *machdep_hint)
@@ -112,12 +110,10 @@ ofwn_put(struct iodesc *desc, void *pkt, size_t len)
 #endif
 	}
 
-#ifdef BROKEN
 	if (dmabuf) {
 		bcopy(pkt, dmabuf, sendlen);
 		pkt = dmabuf;
 	}
-#endif
 
 	rv = OF_write(netinstance, pkt, len);
 
@@ -220,6 +216,16 @@ ofwn_init(struct iodesc *desc, void *machdep_hint)
 #if defined(NETIF_DEBUG)
 	printf("ofwn_init: Open Firmware instance handle: %08x\n", netinstance);
 #endif
+	dmabuf = NULL;
+	if (OF_call_method("dma-alloc", netinstance, 1, 1, (64 * 1024), &dmabuf)
+	    < 0) {
+		printf("Failed to allocate DMA buffer (got %p).\n", dmabuf);
+		goto punt;
+	}
+#if defined(NETIF_DEBUG)
+	printf("ofwn_init: allocated DMA buffer: %p\n", dmabuf);
+#endif
+
 	return;
 
 punt:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202005011836.041Ianpm090689>