[prev in list] [next in list] [prev in thread] [next in thread] 

List:       opensolaris-driver-discuss
Subject:    Re: [driver-discuss] alta 2.6.0 GLD3 build failure SXCE101/gcc/SS11
From:       Menno Lageman <Menno.Lageman () Sun ! COM>
Date:       2008-12-22 12:53:42
Message-ID: 494F8DD6.2020707 () sun ! com
[Download RAW message or body]

Masa Murayama wrote:
> Sorry, I think you use nevada b105 or later.
> 
> The gld version 3 interface of my drivers doesn't work with nevada b105.
> It requires many change on my drivers, but I cannot update
> them for the time being.
> 

Piotr,

Could you try the attached patch? I had the same issue with the myk driver for the 
Marvell Yukon card in build 105 and got that to work with a small patch to the GEM 
bits. Since GEM is Generic, the patch for alta is pretty much the same as for myk.

With the attached patch, alta-2.6.1 builds fine on snv_105. I don't have the 
hardware to test, but given the fact that myk now works past the Crossbow 
integration, I'd say your chances are pretty good.

Menno
-- 
Menno Lageman - Sun Microsystems - http://blogs.sun.com/menno

["alta-2.6.1-crossbow.patch" (text/plain)]

--- gem.h.dist	Mon Dec 22 10:08:06 2008
+++ gem.h	Mon Dec 22 10:14:29 2008
@@ -35,7 +35,7 @@
 #ifndef _GEM_H_
 #define	_GEM_H_
 #ifdef GEM_CONFIG_GLDv3
-#include <sys/mac.h>
+#include <sys/mac_provider.h>
 #include <sys/mac_ether.h>
 #else
 #include <sys/gld.h>
@@ -711,7 +711,7 @@
 #else
 #define	GEM_STREAM_OPS(dev_ops, attach, detach)	\
 	DDI_DEFINE_STREAM_OPS(dev_ops, nulldev, nulldev, attach, detach, \
-	nodev, NULL, D_MP, NULL, gem_quiscence)
+	nodev, NULL, D_MP, NULL, gem_quiesce)
 #endif
 #else
 #define	gem_getinfo	gld_getinfo
--- gem.c.dist	Mon Dec 22 10:08:02 2008
+++ gem.c	Mon Dec 22 10:11:29 2008
@@ -5872,11 +5872,10 @@
 static int		gem_m_multicst(void *, boolean_t, const uint8_t *);
 static int		gem_m_unicst(void *, const uint8_t *);
 static mblk_t		*gem_m_tx(void *, mblk_t *);
-static void		gem_m_resources(void *);
 static void		gem_m_ioctl(void *, queue_t *, mblk_t *);
 static boolean_t	gem_m_getcapab(void *, mac_capab_t, void *);
 
-#define	GEM_M_CALLBACK_FLAGS	(MC_RESOURCES | MC_IOCTL | MC_GETCAPAB)
+#define	GEM_M_CALLBACK_FLAGS	(MC_IOCTL | MC_GETCAPAB)
 
 static mac_callbacks_t gem_m_callbacks = {
 	GEM_M_CALLBACK_FLAGS,
@@ -5887,7 +5886,6 @@
 	gem_m_multicst,
 	gem_m_unicst,
 	gem_m_tx,
-	gem_m_resources,
 	gem_m_ioctl,
 	gem_m_getcapab,
 };
@@ -6424,45 +6422,6 @@
 }
 
 static void
-gem_set_coalease(void *arg, time_t ticks, uint_t count)
-{
-	struct gem_dev *dp = arg;
-	DPRINTF(1, (CE_CONT, "%s: %s: ticks:%d count:%d",
-	    dp->name, __func__, ticks, count));
-
-	mutex_enter(&dp->intrlock);
-	dp->poll_pkt_delay = min(count, dp->gc.gc_rx_ring_size/2);
-	mutex_exit(&dp->intrlock);
-}
-
-static void
-gem_m_resources(void *arg)
-{
-	struct gem_dev		*dp = arg;
-	mac_rx_fifo_t		mrf;
-
-	DPRINTF(0, (CE_CONT, "!%s: %s: called", dp->name, __func__));
-
-	mutex_enter(&dp->intrlock);
-	mutex_enter(&dp->xmitlock);
-
-	/*
-	 * Register Rx rings as resources and save mac
-	 * resource id for future reference
-	 */
-	mrf.mrf_type = MAC_RX_FIFO;
-	mrf.mrf_blank = gem_set_coalease;
-	mrf.mrf_arg = (void *)dp;
-	mrf.mrf_normal_blank_time = 1; /* in uS */
-	mrf.mrf_normal_pkt_count = dp->poll_pkt_delay;
-
-	dp->mac_rx_ring_ha = mac_resource_add(dp->mh, (mac_resource_t *)&mrf);
-
-	mutex_exit(&dp->xmitlock);
-	mutex_exit(&dp->intrlock);
-}
-
-static void
 gem_m_ioctl(void *arg, queue_t *wq, mblk_t *mp)
 {
 	DPRINTF(1, (CE_CONT, "!%s: %s: called",
@@ -6515,9 +6474,6 @@
 		break;
 
 #endif /* GEM_CONFIG_CKSUM_OFFLOAD */
-	case MAC_CAPAB_POLL:
-		ret = B_TRUE;
-		break;
 	}
 	return (ret);
 }


_______________________________________________
driver-discuss mailing list
driver-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/driver-discuss


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic