summaryrefslogtreecommitdiffstats
path: root/rtemsbsd
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2017-07-13 08:31:46 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2017-10-23 09:24:07 +0200
commitde5791b34591b88911c350d835d8b45d274cc852 (patch)
tree20fda544699545de464a9ffcf5ad5716208c0b4a /rtemsbsd
parentdpaa: Add "libbsd,dequeue" to QMan portals (diff)
downloadrtems-libbsd-de5791b34591b88911c350d835d8b45d274cc852.tar.bz2
dpaa: Add "libbsd,dedicated-portal" to QMan portals
By default, the network interfaces use a pool channel, see dpaa_get_channel() in dpaa_eth_priv_probe(). To enable a dedicated QMan software portal, use libbsd,dedicated-portal = "enabled";. This option is useful for special purpose 10Gbit/s Ethernet processing. / { soc: soc@ffe000000 { fman0: fman@400000 { enet7: ethernet@f2000 { libbsd,dedicated-portal = "enabled"; }; }; }; };
Diffstat (limited to 'rtemsbsd')
-rw-r--r--rtemsbsd/powerpc/include/soc/fsl/dpaa.h2
-rw-r--r--rtemsbsd/sys/powerpc/drivers/net/ethernet/freescale/dpaa/if_fmanmac.c9
2 files changed, 11 insertions, 0 deletions
diff --git a/rtemsbsd/powerpc/include/soc/fsl/dpaa.h b/rtemsbsd/powerpc/include/soc/fsl/dpaa.h
index 1e9a6762..9046bc7b 100644
--- a/rtemsbsd/powerpc/include/soc/fsl/dpaa.h
+++ b/rtemsbsd/powerpc/include/soc/fsl/dpaa.h
@@ -40,6 +40,8 @@ struct mbuf;
struct dpaa_priv *dpaa_get_priv_of_ifp(struct ifnet *);
+int dpaa_get_qman_portal_irq_of_ifp(struct ifnet *);
+
typedef struct {
size_t count;
struct bm_buffer bmb[8];
diff --git a/rtemsbsd/sys/powerpc/drivers/net/ethernet/freescale/dpaa/if_fmanmac.c b/rtemsbsd/sys/powerpc/drivers/net/ethernet/freescale/dpaa/if_fmanmac.c
index c71a73c4..640ca506 100644
--- a/rtemsbsd/sys/powerpc/drivers/net/ethernet/freescale/dpaa/if_fmanmac.c
+++ b/rtemsbsd/sys/powerpc/drivers/net/ethernet/freescale/dpaa/if_fmanmac.c
@@ -590,3 +590,12 @@ dpaa_get_priv_of_ifp(struct ifnet *ifp)
sc = ifp->if_softc;
return (netdev_priv(&sc->mac_dev.net_dev));
}
+
+int
+dpaa_get_qman_portal_irq_of_ifp(struct ifnet *ifp)
+{
+ struct fman_mac_softc *sc;
+
+ sc = ifp->if_softc;
+ return (qman_portal_get_irq(sc->mac_dev.portal));
+}