freebsd-dev/sys
John Baldwin 5217af301c Rework how the nexus(4) device works on x86 to better handle the idea of
different "platforms" on x86 machines.  The existing code already handles
having two platforms: ACPI and legacy.  However, the existing approach was
rather hardcoded and difficult to extend.  These changes take the approach
that each x86 hardware platform should provide its own nexus(4) driver (it
can inherit most of its behavior from the default legacy nexus(4) driver)
which is responsible for probing for the platform and performing
appropriate platform-specific setup during attach (such as adding a
platform-specific bus device).  This does mean changing the x86 platform
busses to no longer use an identify routine for probing, but to move that
logic into their matching nexus(4) driver instead.
- Make the default nexus(4) driver in nexus.c on i386 and amd64 handle the
  legacy platform.  It's probe routine now returns BUS_PROBE_GENERIC so it
  can be overriden.
- Expose a nexus_init_resources() routine which initializes the various
  resource managers so that subclassed nexus(4) drivers can invoke it from
  their attach routine.
- The legacy nexus(4) driver explicitly adds a legacy0 device in its
  attach routine.
- The ACPI driver no longer contains an new-bus identify method.  Instead
  it exposes a public function (acpi_identify()) which is a probe routine
  that the MD nexus(4) drivers can use to probe for ACPI.  All of the
  probe logic in acpi_probe() is now moved into acpi_identify() and
  acpi_probe() is just a stub.
- On i386 and amd64, an ACPI-specific nexus(4) driver checks for ACPI via
  acpi_identify() and claims the nexus0 device if the probe succeeds.  It
  then explicitly adds an acpi0 device in its attach routine.
- The legacy(4) driver no longer knows anything about the acpi0 device.
- On ia64 if acpi_identify() fails you basically end up with no devices.
  This matches the previous behavior where the old acpi_identify() would
  fail to add an acpi0 device again leaving you with no devices.

Discussed with:	imp
Silence on:	arch@
2008-03-13 20:39:04 +00:00
..
amd64 Rework how the nexus(4) device works on x86 to better handle the idea of 2008-03-13 20:39:04 +00:00
arm Respect RF_SHAREABLE flag in ARM nexus_setup_intr() 2008-03-12 15:46:25 +00:00
boot style(9) & style.Makefile(9) 2008-03-13 17:54:21 +00:00
bsm Merge OpenBSM 1.0 changes to src/sys/bsm: 2007-10-29 18:47:25 +00:00
cam When probing a newly found device, don't automatically assume that the 2008-02-27 08:47:13 +00:00
cddl Axe the 'thread' argument from VOP_ISLOCKED() and lockstatus() as it is 2008-02-25 18:45:57 +00:00
compat - The P_SA flag has been removed. Don't reference it in a KASSERT. 2008-03-12 22:17:06 +00:00
conf Remove kernel support for M:N threading. 2008-03-12 10:12:01 +00:00
contrib Axe the 'thread' argument from VOP_ISLOCKED() and lockstatus() as it is 2008-02-25 18:45:57 +00:00
crypto Make test00 compilable again. 2008-01-15 18:34:47 +00:00
ddb Add a /S mode to DDB "ex" command, which interprets and prints the 2008-03-07 18:09:07 +00:00
dev Rework how the nexus(4) device works on x86 to better handle the idea of 2008-03-13 20:39:04 +00:00
fs Remove kernel support for M:N threading. 2008-03-12 10:12:01 +00:00
gdb Add support for kgdb's 'detach' command. 2008-02-29 01:57:20 +00:00
geom Add support for VTOC8 labels (aka sun disk labels). When a label does 2008-03-02 00:52:49 +00:00
gnu Introduce some functions in the vnode locks namespace and in the ffs 2008-02-24 16:38:58 +00:00
i4b Spelling fix for interupt -> interrupt 2007-10-12 06:03:46 +00:00
i386 Rework how the nexus(4) device works on x86 to better handle the idea of 2008-03-13 20:39:04 +00:00
ia64 Rework how the nexus(4) device works on x86 to better handle the idea of 2008-03-13 20:39:04 +00:00
isa Use cpu_spinwait() (i.e., "pause") when spinning on rdtsc during DELAY(). 2008-01-17 18:59:38 +00:00
kern PR 117603 2008-03-13 00:46:12 +00:00
libkern Add prototype for __cmpd2(). 2008-02-23 22:40:05 +00:00
modules Update file list and Makefile after repocopying vr(4) from 2008-03-11 03:50:57 +00:00
net Improve convergence of bpf_filter.c toward style(9). 2008-03-09 21:13:43 +00:00
net80211 Fix adhoc mode to scan all available channels for a bss to join 2008-02-29 04:07:07 +00:00
netatalk Annotate two possible bugs in a comment: (1) we allocate and explicitly 2007-11-20 18:50:54 +00:00
netatm Disconnect netatm from the build as it is not MPSAFE and relies on 2007-07-14 21:49:24 +00:00
netgraph Improve apply callback error reporting: 2008-03-11 21:58:48 +00:00
netinet -Don't pass down the entire pkt to ProtoAliasIn, ProtoAliasOut, FragmentIn 2008-03-12 11:58:29 +00:00
netinet6 Rather than passing around a cached 'priv', pass in an ucred to 2008-02-02 14:11:31 +00:00
netipsec Fix bugs when allocating and passing information of current lifetime and 2008-03-02 17:12:28 +00:00
netipx Make tcpstates[] static, and make sure TCPSTATES is defined before 2007-07-30 11:06:42 +00:00
netnatm
netncp - Handle buffer lock waiters count directly in the buffer cache instead 2008-03-01 19:47:50 +00:00
netsmb Remove unused vc_tnode field from struct smb_vc. 2008-03-10 14:55:34 +00:00
nfs
nfs4client - Handle buffer lock waiters count directly in the buffer cache instead 2008-03-01 19:47:50 +00:00
nfsclient Expand the nfs_opts array to include all possible string 2008-03-05 10:09:29 +00:00
nfsserver Fix the Giant leak in the nfsrv_remove(). 2008-03-04 11:05:03 +00:00
opencrypto Make ftruncate a 'struct file' operation rather than a vnode operation. 2008-01-07 20:05:19 +00:00
pc98 Since version 4.3, gcc changed its behaviour concerning the i386/amd64 2008-03-13 10:54:38 +00:00
pccard
pci vr(4) was repocopied to src/sys/dev/vr. 2008-03-11 03:53:53 +00:00
powerpc Obtain TSEC h/w address from the parent bus (OCP) and not rely blindly on what 2008-03-12 16:32:08 +00:00
rpc Remove the now-unused NET_{LOCK,UNLOCK,ASSERT}_GIANT() macros, which 2007-08-06 14:26:03 +00:00
security Remove XXX to remind me to check the free space calculation, which to my 2008-03-10 18:15:02 +00:00
sparc64 Remove kernel support for M:N threading. 2008-03-12 10:12:01 +00:00
sun4v - Rather than repeating the same preemption code everywhere call the scheduler 2008-03-10 01:32:48 +00:00
sys Add const qualifier to cpuset mask's pointer, since the cpuset mask should 2008-03-13 02:56:11 +00:00
tools Introduce a standalone shell script for embedding MFS image. 2008-02-05 10:46:30 +00:00
ufs Replace the non-MPSAFE timeout(9) API in ffs_softdep.c with the MPSAFE 2008-03-13 20:15:48 +00:00
vm Remove kernel support for M:N threading. 2008-03-12 10:12:01 +00:00
Makefile o Add boot, gdb, nfsserver and opencrypto dirs to CSCOPEDIRS; sort. 2008-01-23 08:50:34 +00:00