History log of /dflybsd-src/sys/dev/netif/re/if_revar.h (Results 26 – 50 of 52)
Revision Date Author Comments
# a7d57e62 17-Oct-2008 Sepherosa Ziehau <sephe@dragonflybsd.org>

Correct jumbo frame support for 8168C/CP/D.

These newer chips use ancient design, which does _not_ support gathering RX.
An even worse aspect of the new chips' design is that it does not compat
with

Correct jumbo frame support for 8168C/CP/D.

These newer chips use ancient design, which does _not_ support gathering RX.
An even worse aspect of the new chips' design is that it does not compat
with old ones: the buffer length field in the RX descriptor seems to be
completely ignored by the hardware. This means host memory will be trashed
by hardware if driver uses gathering RX.

Allocate a jumbo buffer pool for these chips and configure "max RX packet
size" register according to MTU.

show more ...


# 39acdb23 16-Oct-2008 Sepherosa Ziehau <sephe@dragonflybsd.org>

According to wpaul's comment, 8139C+ only support 64 TX/RX descriptors


# afdeb9da 16-Oct-2008 Sepherosa Ziehau <sephe@dragonflybsd.org>

Add hardware csum offload support for MAC style 2 chips, which include
8102E, 8102EL, 8168C, 8168CP and 8168D.

Obtained-from: RealTek r8101-1.009.00 r8168-8.008.00


Add RE_C_AUTOPAD capability to i

Add hardware csum offload support for MAC style 2 chips, which include
8102E, 8102EL, 8168C, 8168CP and 8168D.

Obtained-from: RealTek r8101-1.009.00 r8168-8.008.00


Add RE_C_AUTOPAD capability to indicate hardware could correctly pad
short ether frames. Turn it on for newer version of 8168B (0x38000000
and 0xb8000000) and MAC style 2 chips; manually padding short UDP packets
for newer version 8168B will result in incorrect UDP csum, while manually
padding short ICMP packets for MAC style 2 chips will result in both
incorrect IP header csum and incorrect IP length (o_O)

show more ...


# b7bb5f55 14-Oct-2008 Sepherosa Ziehau <sephe@dragonflybsd.org>

- Adjust PCI latency timer on all types of chips
- Adjust PCI cache line size for 8110/8169 chips
- For certain revision of 8101E, reading MAC address from IDRx may not
work; read from EEPROM inste

- Adjust PCI latency timer on all types of chips
- Adjust PCI cache line size for 8110/8169 chips
- For certain revision of 8101E, reading MAC address from IDRx may not
work; read from EEPROM instead
- Add comment that adjusting config1 and config5 may cause unrecoverible
disaster

Obtained-from: RealTek Linux drivers

show more ...


# b24ce995 13-Oct-2008 Sepherosa Ziehau <sephe@dragonflybsd.org>

Add some PHY fixups before we do mii_phy_probe()

Obtained-from: Realtek BSD driver v176


# 3e2dae44 13-Oct-2008 Sepherosa Ziehau <sephe@dragonflybsd.org>

Bring in some PCI register settings from RealTek BSD driver v176. Disable
the PCI register configuration for "style 2 MAC", add comment about it.


# 02758a92 13-Oct-2008 Sepherosa Ziehau <sephe@dragonflybsd.org>

- Read ethernet address from IDRx registers.
Obtained-from: RealTek BSD driver v176
This eliminates the need to read/config EEPROM. Put EEPROM related
functions under RE_USE_EEPROM; disabled b

- Read ethernet address from IDRx registers.
Obtained-from: RealTek BSD driver v176
This eliminates the need to read/config EEPROM. Put EEPROM related
functions under RE_USE_EEPROM; disabled by default
- Maintain re_softc size no matter what kernel options we are using
- Remove RE_DISABLE_HWCSUM; we could do it by clearing RE_C_HWCUM

show more ...


# a1b67fc3 12-Oct-2008 Sepherosa Ziehau <sephe@dragonflybsd.org>

- Nuke re_type, add RE_C_8139CP to indicate the chip is 8139C+
- Change hardware revision mask from 0x7cc00000 to 0xfc800000
Obtained-from: Realtek BSD driver v176
- Convert MAC mode to MAC version

- Nuke re_type, add RE_C_8139CP to indicate the chip is 8139C+
- Change hardware revision mask from 0x7cc00000 to 0xfc800000
Obtained-from: Realtek BSD driver v176
- Convert MAC mode to MAC version and save MAC version in softc
Obtained-from: Realtek BSD driver v176
- Add hardware revision 0x34800000(8102E) and 0x28000000(chip name is unknown)
Obtained-from: Realtek BSD driver v176

show more ...


# 0f035de6 12-Oct-2008 Sepherosa Ziehau <sephe@dragonflybsd.org>

Rework re_probe()


# 70be79a4 09-Oct-2008 Sepherosa Ziehau <sephe@dragonflybsd.org>

Increase default RX/TX descriptor count from 64 to 256


# d4d77345 09-Oct-2008 Sepherosa Ziehau <sephe@dragonflybsd.org>

Use hardware timer to simulate interrupt moderation. Old devices will no
longer be livelocked when they are receiving on GigE line. Newer devices
also gain well controlled interrupt rate.

If hardw

Use hardware timer to simulate interrupt moderation. Old devices will no
longer be livelocked when they are receiving on GigE line. Newer devices
also gain well controlled interrupt rate.

If hardware supports interrupt moderation (e.g. 8168B, 8168C), you could
also use hardware based interrupt moderation, however, due to lack of
necessary information it does not work as reliably as simulated interrupt
moderation. It is _not_ recommended currently.

By default, PCI-E devices' simulated interrupt moderation timer is set to
75us, while PCI devices' is set to 125us.

show more ...


# 5bed1fbd 07-Oct-2008 Sepherosa Ziehau <sephe@dragonflybsd.org>

- According to Realtek's BSD driver v176, we could always write to MISSEDPKT
- Use pci_get_pciecap_ptr() to decide whether a given chip is PCI-E or not
- Rename re_flags to re_caps; we will need a re

- According to Realtek's BSD driver v176, we could always write to MISSEDPKT
- Use pci_get_pciecap_ptr() to decide whether a given chip is PCI-E or not
- Rename re_flags to re_caps; we will need a real re_flags soon

show more ...


# 1bdb2a81 07-Oct-2008 Sepherosa Ziehau <sephe@dragonflybsd.org>

- It does not make sense to disable TX interrupt moderation
- Add field in softc to store RX related interrupt bits

This cleanup eases upcoming changes.


# 931d6f1f 06-Oct-2008 Sepherosa Ziehau <sephe@dragonflybsd.org>

Add RX interrupt moderation suport for PCI-E GigaE chips.

Interrupt moderation register position is obtained from Realtek's
BSD driver v176.
The meaning of the IM register bits is partially reverse

Add RX interrupt moderation suport for PCI-E GigaE chips.

Interrupt moderation register position is obtained from Realtek's
BSD driver v176.
The meaning of the IM register bits is partially reverse engineered:
RX timer position and unit.

This kind of interrupt moderation does not work on PCI GigaE chips.

show more ...


# 957a8760 05-Oct-2008 Sepherosa Ziehau <sephe@dragonflybsd.org>

Get bus clock, which will be used to fix broken TCTR setting (hardware timer,
interrupt moderation related)


# 53d4588a 05-Oct-2008 Sepherosa Ziehau <sephe@dragonflybsd.org>

Add tunable for RX/TX descriptor count


# 09d6afe5 05-Oct-2008 Sepherosa Ziehau <sephe@dragonflybsd.org>

Don't assume that RE_RX_DESC_CNT and RE_TX_DESC_CNT are always same


# 998e7079 05-Oct-2008 Sepherosa Ziehau <sephe@dragonflybsd.org>

Move some macros from if_rereg.h to if_revar.h; regroup them


# 687a3514 05-Oct-2008 Sepherosa Ziehau <sephe@dragonflybsd.org>

re_chain_data is never used


# 089dc1b7 04-Oct-2008 Sepherosa Ziehau <sephe@dragonflybsd.org>

- For relative newer parts (8168B), setting MTPS (max transmit packet size)
according to MTU makes jumbo frame + TX csum offloading work. However,
for old ones (8169), setting MTPS does not have

- For relative newer parts (8168B), setting MTPS (max transmit packet size)
according to MTU makes jumbo frame + TX csum offloading work. However,
for old ones (8169), setting MTPS does not have much effect.
- Reduce max jumbo frame size from 9018 to 7440 (according to DS)
- Fix MTU setting in re_ioctl

show more ...


# 043ecbf0 03-Oct-2008 Sepherosa Ziehau <sephe@dragonflybsd.org>

Transmit csum offload does not work at all on certain hardware revision
once frame length exceeds certain threshold (different parts seems to
have different thresholds). Borrow code from ip_output t

Transmit csum offload does not work at all on certain hardware revision
once frame length exceeds certain threshold (different parts seems to
have different thresholds). Borrow code from ip_output to do software
csum, if transmit csum offloading is enabled and frame length exceeds
hardware's threshold.

8169, 8169S, 8169SB and 8168B are tested, while 8169S and 8169SB does not
seem to have this bug.

show more ...


# 6070c764 03-Oct-2008 Sepherosa Ziehau <sephe@dragonflybsd.org>

- Don't substract ETHER_ALIGN from the fragment length, we don't do
m_adj(ETHET_ALIGN) in re_newbuf()
- If one fragment of a multi-fragment packet recolletion fails, we
drop will consecutive frag

- Don't substract ETHER_ALIGN from the fragment length, we don't do
m_adj(ETHET_ALIGN) in re_newbuf()
- If one fragment of a multi-fragment packet recolletion fails, we
drop will consecutive fragments of this packet.
- All of the TX descs in TX ring could be used; there is no need to
reserve RE_TXDESC_SPARE TX descs

show more ...


# 3580fc56 03-Oct-2008 Sepherosa Ziehau <sephe@dragonflybsd.org>

Rework re_newbuf() and re_encap()


# 64c24521 02-Oct-2008 Sepherosa Ziehau <sephe@dragonflybsd.org>

- Instead of using magic number 4 define it as RE_TXDESC_SPARE
- Clear if_timer only if all TX descs are free
- Clear IFF_OACTIVE only if more than RE_TXDESC_SPARE TX descs ar free


# 610fc460 15-Jan-2007 Sepherosa Ziehau <sephe@dragonflybsd.org>

By default do not enable hardware csum on PCIe re(4), which trashes
packets intermittently if csum offload is enabled. This problem does
not seem to plague PCI re(4).

The pattern of trashed packets

By default do not enable hardware csum on PCIe re(4), which trashes
packets intermittently if csum offload is enabled. This problem does
not seem to plague PCI re(4).

The pattern of trashed packets is not yet identified. From the tcpdump
information provided by Joe, the packets' size should not be the direct
cause. Hardware bug?

Reported-by: Joe Talbott <josepht@cstone.net> (RTL8101E, PCIe re(4))

# Same problem is reported to FreeBSD by two RTL8168B(PCIe re(4)) users.

show more ...


123