freebsd kernel with SKQ
Go to file
Nate Lawson e4116e931c Re-work ACPI PCI IRQ routing (_PRT, link devices). The old approach was
incomplete in that the PRT routing was not aware of link programming.
Fix this by doing all routing through the link devices.  The new algorithm
for setting up links is:

1. Read _CRS to get current setting.  If invalid (not in _PRS), then set
   to 0.
2. Attempt to call _DIS on the link.  If successful, mark the link as not
   routed.  Otherwise, assume it still is.

Then when a routing request occurs:

3. Update weights for all IRQs
4. Attempt to route the initial IRQ if valid
5. If that fails, walk through the sorted list, attempting to route IRQs.
6. Configure the trigger/polarity based on _PRS.

Other changes:
* Add acpi_pci_find_prt() to look up the PRT entry for a given device and
  acpi_pci_link_route() to select/route the best IRQ for it.
* Remove duplicated code in acpi_pcib_route_interrupt() that picked the
  first IRQ from _PRS.
* Remove unneeded arguments from acpi_pcib_resume() and friends.
* Ignore _STA on link devices but report if it seems strange.
* Add a prt_source handle to the PRT structure since the ACPI struct
  ACPI_PCI_ROUTING_TABLE uses a fixed-size entry for it.  We'll need to
  dynamically size this object if we want to use it the same way ACPI-CA
  does.  Null-terminate the source.

Tested by:	Luo Hong <luohong99_at_mails.tsinghua.edu.cn>,
		Jeffrey Katcher <jmkatcher_at_yahoo.com>
Info from:	jhb, Len Brown (Intel)
2004-08-11 14:52:50 +00:00
bin Change the behaviour of `-v' so that, e.g., stepping a month back 2004-08-09 13:43:39 +00:00
contrib Exclusion list for easier import. 2004-08-11 12:19:32 +00:00
crypto Regenerate. 2004-04-20 09:49:37 +00:00
etc Fix the startup logic for sendmail. If sendmail_enable=yes, don't start 2004-08-05 03:09:54 +00:00
games Include <stdlib.h> for exit(), use prototypes and bump WARNS to 6. 2004-08-01 18:52:40 +00:00
gnu Initialize thread_db module. 2004-08-10 12:20:00 +00:00
include Implement C99's standard header <tgmath.h>. It provides type-generic macros 2004-08-08 20:05:47 +00:00
kerberos5 Join the 21st century: Cryptography is no longer an optional component 2004-08-06 07:27:08 +00:00
lib Now, after the import of NgATM-1.1, re-enable the atm module. 2004-08-11 12:27:31 +00:00
libexec Join the 21st century: Cryptography is no longer an optional component 2004-08-06 07:27:08 +00:00
release Merge from recent English revisions 2004-08-11 10:25:23 +00:00
rescue Remove dangling raidctl reference 2004-03-16 13:42:23 +00:00
sbin Forgot to commit those: introduce hardcoded provider functionality, 2004-08-10 19:52:12 +00:00
secure Join the 21st century: Cryptography is no longer an optional component 2004-08-06 07:27:08 +00:00
share fix description of the macros for BUS_DMASYNC opertions. It's from the CPU's 2004-08-11 14:52:33 +00:00
sys Re-work ACPI PCI IRQ routing (_PRT, link devices). The old approach was 2004-08-11 14:52:50 +00:00
tools Per letter dated July 22, 1999 remove 3rd clause of Berkeley derived 2004-08-09 15:29:41 +00:00
usr.bin Correct the name of the country I was born in. 2004-08-11 06:44:36 +00:00
usr.sbin Now, after the import of NgATM-1.1, re-enable the atm module. 2004-08-11 12:27:31 +00:00
COPYRIGHT
installworld_newk
installworld_oldk
MAINTAINERS Fix spelling. 2004-08-05 21:01:27 +00:00
Makefile Make make recurse into sub-directories and sub-makes when given 2004-08-09 11:38:41 +00:00
Makefile.inc1 Enforce the check that MAKEOBJDIRPREFIX (if set) is set in environment 2004-08-11 11:02:26 +00:00
README
UPDATING Add another UPDATING entry about recompiling modules implementing network 2004-08-07 09:41:30 +00:00
UPDATING.64BTT Add a tip for people who are using database-related ports on a sparc64 2004-03-17 01:59:47 +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
``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.

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