History log of /freebsd-10.0-release/sys/arm/ti/cpsw/if_cpsw.c
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
# 259065 07-Dec-2013 gjb

- Copy stable/10 (r259064) to releng/10.0 as part of the
10.0-RELEASE cycle.
- Update __FreeBSD_version [1]
- Set branch name to -RC1

[1] 10.0-CURRENT __FreeBSD_version value ended at '55', so
start releng/10.0 at '100' so the branch is started with
a value ending in zero.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation

# 256281 10-Oct-2013 gjb

Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation


# 248407 17-Mar-2013 ian

Add a macro that gets the physical address of a memory mapped device
register from a bus space resource.

Note that this macro is just for ARM, and is intended to have a short
lifespan. The DMA engines in some SoCs need the physical address of a
memory-mapped device register as one of the arguments for the transfer.
Several scattered ad-hoc solutions have been converted to use this macro,
which now also serves to mark the places where a more complete fix needs
to be applied (after that fix has been designed).


# 246276 02-Feb-2013 kientzle

Another overhaul of the CPSW driver for BeagleBone

Major changes:
* Finally tracked down the flow control setting that
seems to have been causing TX stalls and watchdog timeouts
* RX and TX paths now share a lot more code
* TX interrupt is no longer used; we instead GC finished
tx queue entries at the bottom of the start routine.
* TX start now queues fragmented packets directly; it only
invokes defrag() for occasional very fragmented packets.
* "sysctl dev.cpsw" dumps controller statistics and queue counts
* Host Error Interrupt will give extensive debugging information
if the controller chokes on the queued data.


# 245070 05-Jan-2013 kientzle

Shuffle the TX underrun to work the same way as the RX underrun,
as suggested by YongHyeon PYUN.


# 245064 05-Jan-2013 kientzle

While trying to track down the root cause for
TX stalls in this driver, I've also had some
time to evaluate the effectiveness of different
watchdog strategies.

This is the latest attempt, which consolidates
all of the watchdog logic in one place and
consistently detects TX stalls and resets within
a couple of seconds.


# 244939 01-Jan-2013 kientzle

Overhauled CPSW driver for TI CPSW Ethernet module
(as used in AM335x SoC for BeagleBone).

Among other things:
* Watchdog reset doesn't hang the driver.
* Disconnecting cable doesn't hang the driver.
* ifconfig up/down doesn't hang the driver
* Out-of-memory no longer panics the driver.

Known issues:
* Doesn't have good support for fragmented packets
(calls m_defrag() on TX, assumes RX packets are never fragmented)
* Promisc and allmulti still unimplimented
* addmulti and delmulti still unimplemented
* TX queue still stalls (but watchdog now consistently recovers in ~5s)
* No sysctl monitoring
* Only supports port0
* No switch configuration support
* Not tested on anything but BeagleBone

Committed from: BeagleBone


# 243882 05-Dec-2012 glebius

Mechanically substitute flags from historic mbuf allocator with
malloc(9) flags within sys.

Exceptions:

- sys/contrib not touched
- sys/mbuf.h edited manually


# 242068 25-Oct-2012 kientzle

Do proper padding of runt packets using code copied from bge(4).

Reviewed by: gnn


# 242067 25-Oct-2012 kientzle

Refer to headers locally. This makes it a lot easier
to build this driver out-of-tree.


# 241831 22-Oct-2012 kientzle

Don't repeat the POSTREAD dma sync.


# 241721 19-Oct-2012 kientzle

Replace deprecated M_DONTWAIT with M_NOWAIT.


# 241572 15-Oct-2012 kientzle

Fix an mbuf leak in cpsw driver, clean up mbuf management:
* Record TX mbufs when we get them so we can release them.
* Set TX/RX mbuf slots to NULL when we are no longer responsible for them
* Move dma sync on RX into RX intr routine


# 241564 14-Oct-2012 kientzle

Cut-and-paste dropped semicolon.


# 241563 14-Oct-2012 kientzle

Name cpsw_stop to cpsw_stop_locked consistently with other functions
in this file that assume locks are already held.


# 241562 14-Oct-2012 kientzle

Return correct packet size.


# 240571 16-Sep-2012 jmg

remove some unnecessary debugging statements, dead code and incorrect
comment...

Reviewed by: gnn, imp


# 239722 27-Aug-2012 kientzle

Correctly fetch the MAC address.

Break down the bytes directly into the softc;
the intermediate buffer isn't needed here.
Break down the bytes in the correct order.


# 239281 15-Aug-2012 gonzo

Merging of projects/armv6, part 10

- Support for Texas Instruments SoCs:
- AM335x
- OMAP4

- Kernel configs, DTS for Beaglebone and Pandaboard

Submitted by: Ben Gray, Damjan Marion