FreeBSD src
Go to file
Marius Strobl bda8e754a1 Make sparc64 compatible with NEW_PCIB and enable it:
- Implement bus_adjust_resource() methods as far as necessary and in non-PCI
  bridge drivers as far as feasible without rototilling them.
- As NEW_PCIB does a layering violation by activating resources at layers
  above pci(4) without previously bubbling up their allocation there, move
  the assignment of bus tags and handles from the bus_alloc_resource() to
  the bus_activate_resource() methods like at least the other NEW_PCIB
  enabled architectures do. This is somewhat unfortunate as previously
  sparc64 (ab)used resource activation to indicate whether SYS_RES_MEMORY
  resources should be mapped into KVA, which is only necessary if their
  going to be accessed via the pointer returned from rman_get_virtual() but
  not for bus_space(9) as the later always uses physical access on sparc64.
  Besides wasting KVA if we always map in SYS_RES_MEMORY resources, a driver
  also may deliberately not map them in if the firmware already has done so,
  possibly in a special way. So in order to still allow a driver to decide
  whether a SYS_RES_MEMORY resource should be mapped into KVA we let it
  indicate that by calling bus_space_map(9) with BUS_SPACE_MAP_LINEAR as
  actually documented in the bus_space(9) page. This is implemented by
  allocating a separate bus tag per SYS_RES_MEMORY resource and passing the
  resource via the previously unused bus tag cookie so we later on can call
  rman_set_virtual() in sparc64_bus_mem_map(). As a side effect this now
  also allows to actually indicate that a SYS_RES_MEMORY resource should be
  mapped in as cacheable and/or read-only via BUS_SPACE_MAP_CACHEABLE and
  BUS_SPACE_MAP_READONLY respectively.
- Do some minor cleanup like taking advantage of rman_init_from_resource(),
  factor out the common part of bus tag allocation into a newly added
  sparc64_alloc_bus_tag(), hook up some missing newbus methods and replace
  some homegrown versions with the generic counterparts etc.
- While at it, let apb_attach() (which can't use the generic NEW_PCIB code
  as APB bridges just don't have the base and limit registers implemented)
  regarding the config space registers cached in pcib_softc and the SYSCTL
  reporting nodes set up.
2011-10-02 23:22:38 +00:00
bin Correct a typo that was introduced in 225912 2011-10-02 16:05:19 +00:00
cddl Remove assertion that prevents zfs rename of datasets with mountpoint=none 2011-09-28 11:57:10 +00:00
contrib Shut up warnings with Cyrus SASL 2.1.25. 2011-10-01 18:20:10 +00:00
crypto Belatedly regenerate after application of the HPN patch. 2011-09-28 20:42:22 +00:00
etc Revive the LLVM and Clang license files, which were removed in my 2011-09-29 18:12:40 +00:00
games Minor typo, fix 2 attributions 2011-06-09 06:10:39 +00:00
gnu Shift head from 9.0-CURRENT to 10.0-CURRENT in preparation for releasing 2011-09-26 02:27:04 +00:00
include Avoid accidental conflicts with C++ operator keywords. 2011-09-27 16:33:17 +00:00
kerberos5 - Add missing interdependencies to kerberos libraries. Some of the 2011-09-27 07:14:12 +00:00
lib Reimplement ctermid(). 2011-10-01 12:19:48 +00:00
libexec Restore the writing of the .bss sections of the dsos (not the main 2011-09-20 21:49:54 +00:00
release Don't force active mode FTP. 2011-09-27 19:54:58 +00:00
rescue Finally... Import the latest open-source ZFS version - (SPA) 28. 2011-02-27 19:41:40 +00:00
sbin Get rid of major/minor number distinction. 2011-09-28 18:53:36 +00:00
secure Upgrade to OpenSSH 5.8p2. 2011-05-04 07:34:44 +00:00
share Revive the LLVM and Clang license files, which were removed in my 2011-09-29 18:12:40 +00:00
sys Make sparc64 compatible with NEW_PCIB and enable it: 2011-10-02 23:22:38 +00:00
tools - Add missing interdependencies to kerberos libraries. Some of the 2011-09-27 07:14:12 +00:00
usr.bin Correct column with for device numbers made in previous change. 2011-10-01 09:16:07 +00:00
usr.sbin Get rid of major/minor number distinction. 2011-09-28 18:53:36 +00:00
COPYRIGHT Happy New Year 2011. 2010-12-31 18:07:16 +00:00
LOCKS Update LOCKS syntax. 2008-06-05 19:47:58 +00:00
MAINTAINERS - Remove myself from ncurses maintainer due to ENOTIME 2011-08-10 15:49:24 +00:00
Makefile It's a bit odd, but "make update" in src/ can also update the ports/, 2011-06-16 12:28:37 +00:00
Makefile.inc1 - Add missing interdependencies to kerberos libraries. Some of the 2011-09-27 07:14:12 +00:00
Makefile.mips Retire TARGET_ABI. 2011-01-07 20:26:33 +00:00
ObsoleteFiles.inc Rename the cc.4 and cc.9 modular congestion control related man pages to 2011-09-15 12:15:36 +00:00
README Vendor import of OpenSSH 5.8p2 2011-05-03 11:22:37 +00:00
UPDATING Shift head from 9.0-CURRENT to 10.0-CURRENT in preparation for releasing 2011-09-26 02:27:04 +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.

cddl		Various commands and libraries under the Common Development
		and Distribution License.

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