Home | History | Annotate | Download | only in ic
History log of /src/sys/dev/ic/dwc_gmac_reg.h
RevisionDateAuthorComments
 1.24  19-Oct-2024  skrll #define<tab> consistency
 1.23  27-Jul-2024  skrll Handle GMAC_MAC_Version's that include USERVER.
 1.22  27-Feb-2024  skrll Remove unused "SHIFT" defines. The "MASK" versions exist.
 1.21  11-May-2022  andvar fix various typos in comments.
 1.20  17-May-2020  chs Mask all the MMC counter interrupts if the MMC module is present.
 1.19  08-Oct-2018  martin branches: 1.19.4;
Bring back support for enhanced descriptor format in newer core versions.
Fix a few endian bugs and check the main core version before trying to
read the hardware feature mask. Only read the hardware feature register
if core version reported is >= 3.5 (all my older hardware reports 0).
With some hints and patches from jared, and ok from aymeric
 1.18  28-Sep-2018  aymeric Revert the recent support for enhanced descriptors until a viable solution is
found.

It broke at least Cubietruck, Orange Pi One, and maybe Rock64 ethernets in
different ways. Unfortunately it works on my Olinuxino Micro and Lime 2 so I
can't reproduce the bugs for now.

Should fix PR#53637
 1.17  17-Sep-2018  aymeric Add support for the enhanced descriptors feature.

This makes "recent" dwc gmac controllers, as found e.g. on the Cyclone V, work.
The change was also tested working on an Allwinner A20 which doesn't have the
feature.

No negative reaction on port-arm.
 1.16  16-Jun-2018  jmcneill branches: 1.16.2;
Add flag for disabling store-and-forward mode, and a callback for notifying
bus glue that the link speed has changed.
 1.15  21-Nov-2015  martin branches: 1.15.16; 1.15.18;
Fix an off by one in the bit definition for RX store and forward mode.
Pointed out by ganbold.
While there add a few other bits of the same register.
 1.14  28-Nov-2014  martin branches: 1.14.2;
Bits and values for checksum insertion controll
 1.13  22-Nov-2014  jmcneill - Add MII flow control support
- Set "disable jabber" and "auto padding/CRC stripping" bits in MAC conf
- Write intr mask to intr mask register, not status
- Setup both TX and RX burst modes
- Setup both TX and RX store & forward modes
- Correct an issue with the "end" descriptor passed to dwc_gmac_txdesc_sync
in dwc_gmac_tx_intr

ok martin@
 1.12  25-Oct-2014  joerg branches: 1.12.2;
Fix grammar
 1.11  21-Oct-2014  jmcneill multicast hash filter support
 1.10  20-Oct-2014  jmcneill add $NetBSD$ to top of files
 1.9  20-Oct-2014  martin The RXINT bit is a RX interrupt DISABLE bit.
 1.8  19-Oct-2014  martin Add more comments
 1.7  19-Oct-2014  martin Add more bits and comments, parts from jmcneill.
 1.6  18-Oct-2014  martin Fix GMAC_MII_CLKMASK and add a few clk setup bits for it.
 1.5  13-Oct-2014  martin Add MAC config register bit definitions
 1.4  08-Oct-2014  martin Fix a few bits, add more status bit definitions and some comments.
Remove driver specific preference definitions.
 1.3  14-Sep-2014  martin Cleanup and __BIT()ify
 1.2  09-Sep-2014  martin Make the MII clock variable and passed in from the frontend.
 1.1  08-Sep-2014  martin Add work-in-progress driver for the Designware GMAC core, found on some
allwinner chips.
 1.12.2.4  26-Dec-2015  snj Pull up following revision(s) (requested by jmcneill in ticket #1053):
sys/dev/ic/dwc_gmac_reg.h: revision 1.15
Fix an off by one in the bit definition for RX store and forward mode.
Pointed out by ganbold.
While there add a few other bits of the same register.
 1.12.2.3  03-Feb-2015  bouyer branches: 1.12.2.3.2;
Pull up following revision(s) (requested by snj in ticket #481):
sys/dev/ic/dwc_gmac_var.h: revision 1.6
sys/dev/ic/dwc_gmac_reg.h: revision 1.13
sys/dev/ic/dwc_gmac.c: revision 1.25
sys/dev/ic/dwc_gmac.c: revision 1.26
sys/dev/ic/dwc_gmac.c: revision 1.28
sys/dev/ic/dwc_gmac.c: revision 1.31
- Add MII flow control support
- Set "disable jabber" and "auto padding/CRC stripping" bits in MAC conf
- Write intr mask to intr mask register, not status
- Setup both TX and RX burst modes
- Setup both TX and RX store & forward modes
- Correct an issue with the "end" descriptor passed to dwc_gmac_txdesc_sync
in dwc_gmac_tx_intr
ok martin@
Revert previous change to dwc_gmac_txintr() - while it looks strange at
first sight (and sorry I didn't spot it when reviewing), it is a small
optimization and actually correct.
Add a comment explaining it.
After handling an interrupt, try to handle more packets as we may have
space in the descriptor ring now.
Pointed out by Jared.
fix a couple txq fencepost issues, from FUKAUMI Naoki <fun@naobsd.org>
 1.12.2.2  09-Nov-2014  snj Pull up following revision(s) (requested by martin in ticket #189):
sys/dev/ic/dwc_gmac.c: revision 1.1-1.24
sys/dev/ic/dwc_gmac_reg.h: revision 1.1-1.12
sys/dev/ic/dwc_gmac_var.h: revision 1.1-1.5
Add support for Synopsis Designware GMAC ethernet core, as found on
various Allwiner boards and used by the awge(4) driver.
 1.12.2.1  25-Oct-2014  snj file dwc_gmac_reg.h was added on branch netbsd-7 on 2014-11-09 19:06:57 +0000
 1.12.2.3.2.1  26-Dec-2015  snj Pull up following revision(s) (requested by jmcneill in ticket #1053):
sys/dev/ic/dwc_gmac_reg.h: revision 1.15
Fix an off by one in the bit definition for RX store and forward mode.
Pointed out by ganbold.
While there add a few other bits of the same register.
 1.14.2.1  27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.15.18.3  20-Oct-2018  pgoyette Sync with head
 1.15.18.2  30-Sep-2018  pgoyette Ssync with HEAD
 1.15.18.1  25-Jun-2018  pgoyette Sync with HEAD
 1.15.16.2  03-Dec-2017  jdolecek update from HEAD
 1.15.16.1  21-Nov-2015  jdolecek file dwc_gmac_reg.h was added on branch tls-maxphys on 2017-12-03 11:37:03 +0000
 1.16.2.1  10-Jun-2019  christos Sync with HEAD
 1.19.4.1  11-Aug-2020  martin Pull up following revision(s) (requested by mrg in ticket #1045):

sys/kern/uipc_mbuf.c: revision 1.235
sys/dev/ic/dwc_gmac.c: revision 1.70
sys/dev/ic/dwc_gmac_reg.h: revision 1.20
sys/dev/ic/dwc_gmac.c: revision 1.66
sys/dev/ic/dwc_gmac.c: revision 1.67
sys/dev/ic/dwc_gmac.c: revision 1.68

awge: fix issue that caused rx packets to be corrupt with DIAGNOSTIC kernel

It seems the hardware can only reliably do rx DMA to addresses that are
dcache size aligned. This is hinted at by some GMAC data sheets but hard to
find an authoritative source.

on non-DIAGNOSTIC kernels we always implicitly get MCLBYTES-aligned mbuf
data pointers, but with the reintroduction of POOL_REDZONE for DIAGNOSTIC
we can get 8-byte alignment due to redzone padding. So align rx pointers to
64 bytes which should be good for both arm32 and aarch64.
While here change some bus_dmamap_load() to bus_dmamap_load_mbuf() and add
one missing bus_dmamap_sync(). Also fixes the code to not assume that
MCLBYTES == AWGE_MAX_PACKET. User may override MCLSHIFT in kernel config.
correct pointer arithmetics

mcl_cache: align items to COHERENCY_UNIT

Because we do cache incoherent DMA to/from mbufs we cannot safely share
share cache lines with adjacent items that may be concurrently accessed.

awge: drop redundant m_adj(). Handled via uipc_mbuf.c r1.235 instead.

Mask all the MMC counter interrupts if the MMC module is present.

RSS XML Feed