freebsd kernel with SKQ
Go to file
Pyun YongHyeon 05a8dc6dac Various bus_dma(9) fixes.
- The hardware does not support DAC so limit DMA address space to
   4GB.
 - Removed BUS_DMA_ALLOC_NOW flag.
 - Created separated Tx buffer and Rx buffer DMA tags. Previously
   it used to single DMA tag and it was not possible to specify
   different DMA restrictions.
 - Apply 4 bytes alignment limitation of Tx buffer.
 - Apply 8 bytes alignment limitation of Rx buffer.
 - Tx side bus_dmamap_load_mbuf_sg(9) support.
 - Preallocate Tx DMA maps as creating DMA maps take very long time
   on architectures that require real DMA maps.
 - Adjust guard buffer size to 1522 + 8 as it should include VLAN
   and additional reserved bytes in Rx buffer.
 - Plug memory leak in device detach. Previously wrong buffer
   address was used to free allocated memory.
 - Added rl_list_rx_init() to clear Rx buffer and cleared the
   buffer.
 - Don't destroy DMA maps in rl_txeof() as the DMA map should be
   reused. There is no reason to destroy/recreate the DMA maps in
   this driver.
 - Removed rl_dma_map_rxbuf()/rl_dma_map_txbuf() callbacks.
 - The hardware does not support descriptor based DMA on Tx side
   and the Tx buffer address should be aligned on 4 bytes boundary
   as well as manual padding for short frames. Because of this
   hardware limitation rl(4) always used to invoke m_defrag(9) to
   get a 4 bytes aligned single buffer. However m_defrag(9) takes
   a lot of CPU cycles on slow machines and not all packets need
   the help of m_defrag(9). Armed with the information, don't
   invoke m_defrag(9) if the following conditions are true.
      1. Buffer is not fragmented.
      2. Buffer is aligned on 4 bytes boundary.
      3. Manual padding is not necessary.
      4. Or padding is necessary but upper stack passed a writable
         buffer and the space needed for padding is satisfied.
   This change combined with preallocated DMA maps greatly
   increased Tx performance of driver on sparc64.
 - Moved bus_dmamap_sync(9) in rl_start_locked() to rl_encap() and
   corrected memory synchronization operation specifier of
   bus_dmamap_sync(9).
 - Removed bus_dmamap_unload(9) in rl_stop(). There is no need to
   reload/unload Rx buffer as rl(4) always have to copy from the
   buffer. It just needs proper bus_dmamap_sync(9) calls before
   copying the received frame.

With this change rl(4) should work on systems with more than 4GB
memory.

PR:	kern/128143
2008-10-25 02:36:08 +00:00
bin Improve the `pkill -t' handling, which I changed in my previous commit. 2008-09-30 17:30:39 +00:00
cddl Mips doesn't have a long double that's different in size from double. 2008-09-18 19:54:02 +00:00
contrib Actually fix pty detection for autologout setting. 2008-10-20 08:44:14 +00:00
crypto At some point, construct_utmp() was changed to use realhostname() to fill 2008-10-21 11:58:26 +00:00
etc Add entries for uart based serial ports. All the serial ports on mips 2008-10-12 06:58:03 +00:00
games Another good day for historical quotes, Oliver Wendell Holmes brought to 2008-10-08 19:39:22 +00:00
gnu Document what the sed trick is for. 2008-10-16 18:09:27 +00:00
include Move getosreldate(3) prototype from the machine generated <osreldate.h> 2008-09-26 19:23:22 +00:00
kerberos5 Add an implementation of the RPCSEC_GSS authentication protocol for RPC. This 2008-08-06 14:02:05 +00:00
lib Finish what revision 1.40 started. Revision 1.40 removed a false statement 2008-10-24 14:40:13 +00:00
libexec This code has no copyright. It is fairly obvious to me that we're a 2008-10-13 20:24:03 +00:00
release Correct a typo in Nocona core name. 2008-10-23 10:38:04 +00:00
rescue Take a moment to tidy some white space while I'm here. No functional 2008-09-13 19:56:37 +00:00
sbin Add support for multiple attributes. This is required for the 2008-10-20 05:12:50 +00:00
secure Upgrade to OpenSSH 5.1p1. 2008-08-01 02:48:36 +00:00
share Fix month mistake. Again. Sorry. :) 2008-10-24 18:57:11 +00:00
sys Various bus_dma(9) fixes. 2008-10-25 02:36:08 +00:00
tools #ifdef out the lock-against-self test. I'm not sure it makes sense, and 2008-10-20 17:26:30 +00:00
usr.bin Use strlcpy() when we mean it. 2008-10-17 21:14:50 +00:00
usr.sbin Slightly adjust code logic: we allocate a "size"ed length of memory, not 2008-10-23 00:31:15 +00:00
COPYRIGHT Happy new year 2008! 2007-12-31 22:09:19 +00:00
LOCKS Update LOCKS syntax. 2008-06-05 19:47:58 +00:00
MAINTAINERS Update description text 2008-06-06 21:32:01 +00:00
Makefile Back out rev. 1.352 (SVN rev 179842) as phk pointed out that 2008-06-17 11:08:49 +00:00
Makefile.inc1 Back out testing aid that was inadvertantly committed as part of r184205. 2008-10-23 16:06:49 +00:00
ObsoleteFiles.inc Several documentation fixups related to device minor/major numbers: 2008-09-28 20:15:45 +00:00
README Vendor import of OpenSSH 5.1p1 2008-07-23 09:33:08 +00:00
UPDATING Add an entry about the split up of usb into usb+*hci modules. 2008-10-10 06:37:51 +00:00

This is the top level of the FreeBSD source directory.  This file
was last revised on:
$FreeBSD$

For copyright information, please see the file COPYRIGHT in this
directory (additional copyright information also exists for some
sources in this tree - please see the specific source directories for
more information).

The Makefile in this directory supports a number of targets for
building components (or all) of the FreeBSD source tree, the most
commonly used one being ``world'', which rebuilds and installs
everything in the FreeBSD system from the source tree except the
kernel, the kernel-modules and the contents of /etc.  The ``world''
target should only be used in cases where the source tree has not
changed from the currently running version.  See:
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html
for more information, including setting make(1) variables.

The ``buildkernel'' and ``installkernel'' targets build and install
the kernel and the modules (see below).  Please see the top of
the Makefile in this directory for more information on the
standard build targets and compile-time flags.

Building a kernel is a somewhat more involved process, documentation
for which can be found at:
   http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig.html
And in the config(8) man page.
Note: If you want to build and install the kernel with the
``buildkernel'' and ``installkernel'' targets, you might need to build
world before.  More information is available in the handbook.

The sample kernel configuration files reside in the sys/<arch>/conf
sub-directory (assuming that you've installed the kernel sources), the
file named GENERIC being the one used to build your initial installation
kernel.  The file NOTES contains entries and documentation for all possible
devices, not just those commonly used.  It is the successor of the ancient
LINT file, but in contrast to LINT, it is not buildable as a kernel but a
pure reference and documentation file.


Source Roadmap:
---------------
bin		System/user commands.

contrib		Packages contributed by 3rd parties.

crypto		Cryptography stuff (see crypto/README).

etc		Template files for /etc.

games		Amusements.

gnu		Various commands and libraries under the GNU Public License.
		Please see gnu/COPYING* for more information.

include		System include files.

kerberos5	Kerberos5 (Heimdal) package.

lib		System libraries.

libexec		System daemons.

release		Release building Makefile & associated tools.

rescue		Build system for statically linked /rescue utilities.

sbin		System commands.

secure		Cryptographic libraries and commands.

share		Shared resources.

sys		Kernel sources.

tools		Utilities for regression testing and miscellaneous tasks.

usr.bin		User commands.

usr.sbin	System administration commands.


For information on synchronizing your source tree with one or more of
the FreeBSD Project's development branches, please see:

  http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/synching.html