gran_cache = 0 "Cache line granularity";
gran_desc = 1 "Descriptor granularity";
};
+
regarray rxdctl rw addr(base, 0x2828)[2;0x100] "Rx descriptor control" {
- pthresh 6 "Prefetch threshold";
- _ 2 mbz;
- hthresh 6 "Host threshold";
- _ 2 mbz;
- wthresh 6 "Write back threshold";
- _ 2 mbz;
- gran 1 type(threshgran) "Granularity";
- _ 7 mbz;
+ pthresh 6 "Prefetch threshold";
+ _ 2 mbz;
+ hthresh 6 "Host threshold";
+ _ 2 mbz;
+ wthresh 6 "Write back threshold";
+ _ 2 mbz;
+ gran 1 type(threshgran) "Granularity";
+ _ 7 mbz;
+ };
+
+ regarray rxdctl_82575 rw also addr(base, 0x2828)[2;0x100] "Rx descriptor control" {
+ pthresh 6 "Prefetch threshold";
+ _ 2 mbz;
+ hthresh 6 "Host threshold";
+ _ 2 mbz;
+ wthresh 6 "Write back threshold";
+ _ 3 mbz;
+ enable 1 "Granularity";
+ swflush 1 "Receive Software Flush";
+ _ 5 mbz;
};
// 13.3.45
/* --------------------- receive setup --------------------- */
/* receive descriptor control */
- {
+ if (dev->mac_type == e1000_82575 || dev->mac_type == e1000_82576) {
+ e1000_rxdctl_82575_t rxdctl = 0;
+
+ rxdctl = e1000_rxdctl_82575_enable_insert(rxdctl, 1);
+ rxdctl = e1000_rxdctl_82575_wthresh_insert(rxdctl, 1);
+ e1000_rxdctl_82575_wr(dev->device, 0, rxdctl);
+ }
+ else {
e1000_rxdctl_t rxdctl = 0;
rxdctl = e1000_rxdctl_gran_insert(rxdctl, 1);