History log of /freebsd-10-stable/sys/mips/rmi/dev/xlr/rge.c
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
# 314667 04-Mar-2017 avg

MFC r283291: don't use CALLOUT_MPSAFE with callout_init()

The main purpose of this MFC is to reduce conflicts for other merges.
Parts of the original change have already "trickled down" via individual MFCs.


# 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

# 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


# 223562 26-Jun-2011 kevlo

Remove duplicate header includes


# 217072 06-Jan-2011 jhb

Remove bogus usage of INTR_FAST. "Fast" interrupts are now indicated by
registering a filter handler rather than a threaded handler. Also remove
a bogus use of INTR_MPSAFE for a filter.


# 216408 13-Dec-2010 avg

fix mips build breakage introduced in r216375: atomic_store_int doesn't exists

1) 32-bit assignment are expected to always be atomic.
2) Release/acquire memory barrier semantics doesn't seem to be needed here.
So a simple assignment can be used.

Remove unused port_set_counter() while here, it also used to mis-use
atomic_set_int().

Reported by: jhb
Pointyhat to: avg
MFC after: 3 weeks


# 216375 11-Dec-2010 avg

fix atomic_set_xxx misuse in rge

It seems that atomic_set_xxx and atomic_store_xxx were confused.

Reviewed by: jhb (general issue)
MFC after: 3 weeks


# 213377 03-Oct-2010 jchandra

Update message ring handling code for XLR/XLS

- Wakeup multiple threads per core using message ring watermark interrupts.
- Update message ring handler registration, use the real device station id
for registering interrupts.
- rge/nlge: update for the new message ring registration code.
- rge/nlge: use 2 message ring stations for incoming packets, this will
allow more messages to be queued.
- nlge: comment fixes, remove unused variable
- style and whitespace fixes


# 212758 16-Sep-2010 jchandra

Network driver updates.

- Move RMI MIPS extension to atomic increment word (LDADDWU) to common
header file sys/mips/rmi/rmi_mips_exts.h
- Fix xlr_ldaddwu() for 64 bit, it is a 32 bit operation, use
unsigned int* instead of unsigned long* argument
- Provide dummy xlr_enable_kx/xlr_restore_kx for n32 and n64.
- Provide xlr_paddr_ld() instead of xlr_paddr_lw(), so that the
descriptor formats are same for 32 and 64 bit
- update nlge and rge for the changes

These changes are also needed by the security driver which will be
added later.


# 212553 13-Sep-2010 jchandra

sys/mips/rmi/msgring.h - fixes and clean up.

- Remove sync from msgrng_send, sync needs to be called just once before
sending.
- Fix retry logic - don't reload registers when retrying in message_send,
also fix check for send pending fail.
- remove unused message_send_block_fast()
- merge message_receive_fast() to message_receive
- style(9) fixes, and comments
- rge and nlge updated for the sys/mips/rmi/msgring.h changes


# 212409 10-Sep-2010 jchandra

Compilation fix - when INVARIANTS are turned off.


# 212321 08-Sep-2010 jchandra

Clean up fast message ring code for XLR.

Fix message ring send path:
- define msgrng_access_enable() which disables local interrupts
and enables message ring access. Also define msgrng_restore() which
restores interrupts
- remove all other msgrng enable/disable macros, no need of critical_enter
and other locking here.
- message_send() fixup: re-read status until pending bit clears
- message_send_retry() fixup: retry only few times with interrupts disabled
- Fix up message_send/message_send_retry callers - call
msgrng_access_enable() and msgrng_restore() correctly so that interrupts
are not disabled for long.
- removed unused and obsolete code from sys/mips/rmi/msgring.h
- some style fixes - more later

rge.c (XLR GMAC driver):
- updated for the message ring changes
- remove unused message_send_block()
- retry on credit failure, this is not a permanent failure when credits
are configured correctly. Add panic if credits are not available to
send for a long time.


# 211996 30-Aug-2010 jchandra

Move debug.h to the the rge driver directory. rge.c is the only user of
debug.h. Remove debug.h references from other files.


# 211994 30-Aug-2010 jchandra

Clean up header files in RMI platform code (sys/mips/rmi), and remove
unused files.

- remove clock.c and clock.h, these are not used after the new timer
code was added.
- remove duplicated include files, fix header file ordering, remove
some unneeded includes.
- rename mips/rmi/shared_structs.h which contains the RMI boot loader
interface to mips/rmi/rmi_boot_info.h. Remove unused files
mips/rmi/shared_structs_func.h and sys/mips/rmi/shared_structs_offsets.h
- merge mips/rmi/xlrconfig.h and mips/rmi/rmi_mips_exts.h, and remove
duplicated functions.
- nlge - minor change to remove unneeded argument.
- Add FreeBSD svn keyword for headers


# 210630 29-Jul-2010 jchandra

Update rge driver for 64 bit kernel.
- stored virtual addresses should be 64bit
- physical memory can be directly accessed using XKPHYS pointers in 64 bit.
- no need to enable KX


# 209808 08-Jul-2010 jchandra

64 bit compilation support XLR platform code.
Mostly changes to make casting between int and pointer and printing
64bit values safe for 32 and 64 bit compile.

Approved by: rrs


# 209318 18-Jun-2010 jchandra

Add support for newer XLS chips/boards in the GMAC driver.
Improved processor id code in board.h, remove unnecessary macros.

Approved by: rrs(mentor)


# 208369 21-May-2010 jchandra

Changes to boot on a subset of threads on an XLR/XLS core.
- Adds re-partitioning TLB per core for enabled threads.
- Adds hardware thread id to cpuid mapping
- updates rge driver packet distribution and message ring handling
threads to be started based on hardware thread id.
- remove unused early debugging code to set control registers.
- coding style fixes

Approved by: rrs (mentor)


# 208265 18-May-2010 rpaulo

Add a device description.


# 208165 16-May-2010 rrs

This pushes all of JC's patches that I have in place. I
am now able to run 32 cores ok.. but I still will hang
on buildworld with a NFS problem. I suspect I am missing
a patch for the netlogic rge driver.

JC check and see if I am missing anything except your
core-mask changes

Obtained from: JC


# 203754 10-Feb-2010 rrs

If a mbuf is split across two pages, we
have code that detects this and makes two
transmit descriptors. However its possible
that the algorithm detects when the second
page is not used (when the data aligns perfectly
to the bottom of the page). This caused a 0
len descriptor to be added which locks up the
rge device. Skip such things with a continue.

JC provided this patch... Thanks JC :-)
Obtained from: JC (c.jayachandran@gmail.com)


# 203010 26-Jan-2010 rrs

1) Make sure static is init'd to 0
2) In one place make sure we call the backup
startup routine (from the timer).


# 202175 12-Jan-2010 imp

Set the svn:eol-style = native and svn:mime-type = text/plain
properties on all files in this tree.

Submitted by: rpaulo@


# 202092 11-Jan-2010 imp

Correct a path in an include I missed earlier
Remove references to if_watchdog. The rge_watchdog routine was empty anyway.


# 202066 11-Jan-2010 imp

Attempt to cope with the dev/rmi -> mips/rmi/dev move.


# 201979 10-Jan-2010 imp

Merge from projects/mips to head by hand:

Copy sys/dev/rmi to sys/mips/rmi/dev [sic]. For devices that are on
only one SoC, or family of SoC, we place them under sys/<vendor>/dev.
I'll fix the build problems this causes as best I can since rmi kernel
require external toolchains due to lack of support for rmi op-codes in
the ancient binutils we have in the tree.


# 199139 10-Nov-2009 rrs

Ok, the 40bit reads were causing crashes
when they did their thing i.e. enabling SX mode
and then trying to load in. Since we are o32 this
is all un-needed. So I have re-structured the code
to work without doing this special set of code.
Packets now flow in and out.. however for some
reason dhcp/bootp response comes in and the kernel
does not proceed. Not sure if we have a UDP checksum error
or ?? The packets look all there by comparing wireshark
and the first 64 bytes of the TX and RX packets.


# 199091 09-Nov-2009 rrs

Cooresponding hack to pass in the irq


# 198789 02-Nov-2009 rrs

Fix header file location


# 198626 29-Oct-2009 rrs

white space changes


# 198608 29-Oct-2009 rrs

updates to rge to get it to compile


# 198157 15-Oct-2009 rrs

Adds the untouched code from the RMI 6.4 stuff.
This has a security device and the gig ethernet device.
Note the 10gig device driver is yet missing.