mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-16 10:20:30 +00:00
Remove the dual-address cycle stuff. DAC is used to allow a bus master
device to access 64-bit addresses from a 32-bit PCI bus. While the RealTek manual says you can set this bit and the chip will perform DAC only if you give it a DMA address with any of the upper 32 bits set, this appears not to be the case. If I turn on the DAC bit, the chip sets the 'system error' bit in the status register when I to do a DMA on my Athlon test box with 32-bit PCI bus (VIA chipset) even though I only have 128MB of physical memory, and thus can never give the chip a 64-bit address. Obviously, I can't just set it and forget it, so until I figure out the right rule for when it's safe/necessary to enable it, keep it turned off.
This commit is contained in:
parent
5249fed37f
commit
edd033746c
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=120299
@ -2081,14 +2081,12 @@ re_init(xsc)
|
||||
|
||||
/*
|
||||
* Enable C+ RX and TX mode, as well as VLAN stripping and
|
||||
* RX checksum offload. Only enable dual-address cycle if
|
||||
* we're on a 64-bit bus. We must configure the C+ register
|
||||
* RX checksum offload. We must configure the C+ register
|
||||
* before all others.
|
||||
*/
|
||||
CSR_WRITE_2(sc, RL_CPLUS_CMD, RL_CPLUSCMD_RXENB|
|
||||
RL_CPLUSCMD_TXENB|RL_CPLUSCMD_PCI_MRW|
|
||||
(CSR_READ_1(sc, RL_CFG2) & RL_BUSWIDTH_64BITS ?
|
||||
RL_CPLUSCMD_PCI_DAC : 0)|RL_CPLUSCMD_VLANSTRIP|
|
||||
RL_CPLUSCMD_VLANSTRIP|
|
||||
(ifp->if_capenable & IFCAP_RXCSUM ?
|
||||
RL_CPLUSCMD_RXCSUM_ENB : 0));
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user