summaryrefslogtreecommitdiff
path: root/dev/sinic.cc
diff options
context:
space:
mode:
authorNathan Binkert <binkertn@umich.edu>2006-03-03 14:17:48 -0500
committerNathan Binkert <binkertn@umich.edu>2006-03-03 14:17:48 -0500
commit7546fabe68a1dc6ec9b9e020f5e2b1cc0aa31c21 (patch)
treecd25b9096d5dd90617c5fdf414e255d074748c42 /dev/sinic.cc
parent0fed64a6a47a62a94a53c5f41ac89b34a2fd6786 (diff)
downloadgem5-7546fabe68a1dc6ec9b9e020f5e2b1cc0aa31c21.tar.xz
Ethernet devices have an RSS option to tell the driver to
use Receive side scaling dev/ns_gige.cc: dev/ns_gige.hh: dev/ns_gige_reg.h: dev/sinic.cc: dev/sinic.hh: dev/sinicreg.hh: add support for setting the RSS flag to notify the driver to use RSS --HG-- extra : convert_revision : 5f0c11668ae976634b3bf0caad669a9464a4c041
Diffstat (limited to 'dev/sinic.cc')
-rw-r--r--dev/sinic.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/dev/sinic.cc b/dev/sinic.cc
index 34b4213e0..363994919 100644
--- a/dev/sinic.cc
+++ b/dev/sinic.cc
@@ -761,6 +761,8 @@ Device::reset()
regs.Config |= Config_RxThread;
if (params()->tx_thread)
regs.Config |= Config_TxThread;
+ if (params()->rss)
+ regs.Config |= Config_RSS;
regs.IntrMask = Intr_Soft | Intr_RxHigh | Intr_RxPacket | Intr_TxLow;
regs.RxMaxCopy = params()->rx_max_copy;
regs.TxMaxCopy = params()->tx_max_copy;
@@ -1624,6 +1626,7 @@ BEGIN_DECLARE_SIM_OBJECT_PARAMS(Device)
Param<string> hardware_address;
Param<bool> rx_thread;
Param<bool> tx_thread;
+ Param<bool> rss;
END_DECLARE_SIM_OBJECT_PARAMS(Device)
@@ -1666,7 +1669,8 @@ BEGIN_INIT_SIM_OBJECT_PARAMS(Device)
INIT_PARAM(rx_filter, "Enable Receive Filter"),
INIT_PARAM(hardware_address, "Ethernet Hardware Address"),
INIT_PARAM(rx_thread, ""),
- INIT_PARAM(tx_thread, "")
+ INIT_PARAM(tx_thread, ""),
+ INIT_PARAM(rss, "")
END_INIT_SIM_OBJECT_PARAMS(Device)
@@ -1714,6 +1718,7 @@ CREATE_SIM_OBJECT(Device)
params->eaddr = hardware_address;
params->rx_thread = rx_thread;
params->tx_thread = tx_thread;
+ params->rss = rss;
return new Device(params);
}