freebsd-skq/sys/dev
Marius Strobl 33368e9fe8 Rototill the sparc64 nexus(4) (actually this brings in the code the
sun4v nexus(4) in turn is based on):
o Change nexus(4) to manage the resources of its children so the
  respective device drivers don't need to figure them out of OFW
  themselves.
o Change nexus(4) to provide the ofw_bus KOBJ interface instead of
  using IVARs for supplying the OFW node and the subset of standard
  properties of its children. Together with the previous change this
  also allows to fully take advantage of newbus in that drivers like
  fhc(4), which attach on multiple parent busses, no longer require
  different bus front-ends as obtaining the OFW node and properties
  as well as resource allocation works the same for all supported
  busses. As such this change also is part 4/4 of allowing creator(4)
  to work in USIII-based machines as it allows this driver to attach
  on both nexus(4) and upa(4). On the other hand removing these IVARs
  breaks API compatibility with the powerpc nexus(4) but which isn't
  that bad as a) sparc64 currently doesn't share any device driver
  hanging off of nexus(4) with powerpc and b) they were no longer
  compatible regarding OFW-related extensions at the pci(4) level
  since quite some time.
o Provide bus_get_dma_tag methods in nexus(4) and its children in
  order to handle DMA tags in a hierarchical way and get rid of the
  sparc64_root_dma_tag kludge. Together with the previous two items
  this changes also allows to completely get rid of the nexus(4)
  IVAR interface. It also includes:
  - pushing the constraints previously specified by the nexus_dmatag
    down into the DMA tags of psycho(4) and sbus(4) as it's their
    IOMMUs which induce these restrictions (and nothing at the
    nexus(4) or anything that would warrant specifying them there),
  - fixing some obviously wrong constraints of the psycho(4) and
    sbus(4) DMA tags, which happened to not actually be used with
    the sparc64_root_dma_tag kludge in place and therefore didn't
    cause problems so far,
  - replacing magic constants for constraints with macros as far
    as it is obvious as to where they come from.
  This doesn't include taking advantage of the newbus way to get
  the parent DMA tags implemented by this change in order to divorce
  the IOTSBs of the PCI and SBus IOMMUs or for implementing the
  workaround for the DMA sync bug in Sabre (and Tomatillo) bridges,
  yet, though.
o Get rid of the notion that nexus(4) (mostly) reflects an UPA bus
  by replacing ofw_upa.h and with ofw_nexus.h (which was repo-copied
  from ofw_upa.h) and renaming its content, which actually applies to
  all of Fireplane/Safari, JBus and UPA (in the host bus case), as
  appropriate.
o Just use M_DEVBUF instead of a separate M_NEXUS malloc type for
  allocating the device info for the children of nexus(4). This is
  done in order to not need to export M_NEXUS when deriving drivers
  for subordinate busses from the nexus(4) class.
o Use the DEFINE_CLASS_0() macro to declare the nexus(4) driver so
  we can derive subclasses from it.
o Const'ify the nexus_excl_name and nexus_excl_type arrays as well
  as add 'associations' and 'rsc', which are pseudo-devices without
  resources and therefore of no real interest for nexus(4), to the
  former.
o Let the nexus(4) device memory rman manage the entire 64-bit address
  space instead of just the UPA_MEMSTART to UPA_MEMEND subregion as
  Fireplane/Safari- and JBus-based machines use multiple ranges,
  which can't be as easily divided as in the case of UPA (limiting
  the address space only served for sanity checking anyway).
o Use M_WAITOK instead of M_NOWAIT when allocating the device info
  for children of nexus(4) in order to give one less opportunity
  for adding devices to nexus(4) to fail.
o While adapting the drivers affected by the above nexus(4) changes,
  change them to take advantage of rman_get_rid() instead of caching
  the RIDs assigned to allocated resources, now that the RIDs of
  resources are correctly set.
o In iommu(4) and nexus(4) replace hard-coded functions names, which
  actually became outdated in several places, in panic strings and
  status massages with __func__. [1]
o Use driver_filter_t in prototypes where appropriate.
o Add my copyright to creator(4), fhc(4), nexus(4), psycho(4) and
  sbus(4) as I changed considerable amounts of these drivers as well
  as added a bunch of new features, workarounds for silicon bugs etc.
o Fix some white space nits.

Due to lack of access to Exx00 hardware, these changes, i.e. central(4)
and fhc(4), couldn't be runtime tested on such a machine. Exx00 are
currently reported to panic before trying to attach nexus(4) anyway
though.

PR:		76052 [1]
Approved by:	re (kensmith)
2007-03-07 21:13:51 +00:00
..
aac o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
acpi_support Prevent freeing wild pointer when bailing out. 2006-11-06 12:14:27 +00:00
acpica Check the _TMP value for sanity also. On some systems (HP NX laptops), the 2007-03-05 21:39:53 +00:00
adlink o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
advansys o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
agp Restore agp aperture size after resume, in case it is modified after boot. 2007-01-06 08:31:31 +00:00
aha o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 15:55:37 +00:00
ahb o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
aic o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
aic7xxx o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
amd o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
amr o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
an o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
ar o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
arcmsr Better fix for the errors under high load. Returning CAM_SCSI_BUSY is almost 2007-03-06 01:12:15 +00:00
arl o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
asr o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
ata Add support for the 3 (PATA) channel on the VIA 6421 chip. 2007-03-01 21:18:27 +00:00
ath Change mtx's to use the formulated name as type so witness does not 2007-03-05 21:56:33 +00:00
atkbdc o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
auxio
awi o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
bce Catch up the rest of the drivers with the ether_vlan_mtap modifications. 2007-03-04 03:38:08 +00:00
bfe o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
bge Fix style(9) and consistency. 2007-03-06 20:14:48 +00:00
bktr o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
buslogic o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
cardbus Cope gracefully with device_get_children returning an error. 2007-01-19 08:49:28 +00:00
ce o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
ciss o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
cm o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
cnw Catchup to filters by piso. 2007-02-23 19:27:49 +00:00
cp o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
cpufreq Since DELAY() was moved, most <machine/clock.h> #includes have been 2006-05-16 14:37:58 +00:00
cs o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
ct o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
ctau o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
cx o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
cy o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
dc o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
dcons Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
de o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
digi Fix our ioctl(2) implementation when the argument is "int". New 2006-09-27 19:57:02 +00:00
dpt o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
drm o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
ed o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
eisa
em Revert previous change and take back a pointy hat. 2007-02-28 09:04:46 +00:00
en o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
ep o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 15:55:37 +00:00
esp o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
ex o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
exca exca->pccarddev should always be non-null now. Only call it when the 2007-02-24 15:56:06 +00:00
fatm o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
fb Rototill the sparc64 nexus(4) (actually this brings in the code the 2007-03-07 21:13:51 +00:00
fdc Always protect the kthread flags with the lock and close a race with 2007-02-27 17:16:52 +00:00
fe o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
firewire Use pause() rather than tsleep() on stack variables and function pointers. 2007-02-27 17:23:29 +00:00
flash MFp4: 2006-11-29 08:05:55 +00:00
fxp o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
gem o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
harp
hatm o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
hfa o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
hifn o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
hme o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
hptmv Use pause() rather than tsleep() on stack variables and function pointers. 2007-02-27 17:23:29 +00:00
hwpmc Use pause() rather than tsleep() on stack variables and function pointers. 2007-02-27 17:23:29 +00:00
ic Fix style nits. No md5 changes in .o's. ;-) 2006-09-08 21:46:01 +00:00
ichsmb o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
ichwd Align the interfaces for the various watchdogs and make the interface 2006-12-15 21:44:49 +00:00
ida o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
idt o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
ie o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
ieee488 Catchup with filters 2007-02-23 19:34:52 +00:00
if_ndis Fix shared authentication mode. 2006-12-28 00:05:40 +00:00
iicbus const poison 2006-12-05 06:19:36 +00:00
iir o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
io
ipmi Use pause() rather than tsleep() on stack variables and function pointers. 2007-02-27 17:23:29 +00:00
ips o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
ipw o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
isp Redo previous newbus related change to be kinder to 2007-02-23 23:13:46 +00:00
ispfw The MODULE_NAME should "ispfw" unless overriden, not "isp". 2006-12-10 03:42:57 +00:00
iwi o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
ixgb Catch up the rest of the drivers with the ether_vlan_mtap modifications. 2007-03-04 03:38:08 +00:00
joy
kbd Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
kbdmux Fix our ioctl(2) implementation when the argument is "int". New 2006-09-27 19:57:02 +00:00
le o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
led
lge o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
lmc o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
mc146818 Add macros for the individual divisor bits as some MC146818A-compatible 2007-01-20 14:57:51 +00:00
mca
mcd
md Resolve two deadlocks that could be caused by busy md device backed 2006-12-14 11:34:07 +00:00
mem
mfi o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
mii mii_phy_dev_probe returns its third argument on match, not 0, so pass 0 2007-02-26 04:48:24 +00:00
mk48txx Align the interfaces for the various watchdogs and make the interface 2006-12-15 21:44:49 +00:00
mlx o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
mly o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
mmc Preliminary MMC stack. This stack supports SD 1.0 cards only, but 2006-10-20 06:39:59 +00:00
mpt Redo previous newbus related change to be kinder to 2007-02-23 23:13:46 +00:00
mse o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
msk Catch up the rest of the drivers with the ether_vlan_mtap modifications. 2007-03-04 03:38:08 +00:00
mxge o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
my o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
ncv o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
nfe Catch up the rest of the drivers with the ether_vlan_mtap modifications. 2007-03-04 03:38:08 +00:00
nge Catch up the rest of the drivers with the ether_vlan_mtap modifications. 2007-03-04 03:38:08 +00:00
nmdm Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
nsp o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
null Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
nve o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
ofw Add missing includes of priv.h. 2006-11-06 17:43:10 +00:00
patm o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
pbio Since DELAY() was moved, most <machine/clock.h> #includes have been 2006-05-16 14:37:58 +00:00
pccard Use pause() rather than tsleep() on stack variables and function pointers. 2007-02-27 17:23:29 +00:00
pccbb Use different wait channel name for second of two sleeps. Minor commentary 2007-03-05 05:40:24 +00:00
pcf o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
pci - Use constants for VPD capability register offsets. 2007-03-05 16:21:59 +00:00
pdq o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 20:11:27 +00:00
powermac_nvram Add device to access and modify Open Firmware NVRAM settings in 2006-08-01 22:19:01 +00:00
ppbus Remove a useless cast from void * to struct ppb_device *. 2007-03-06 11:44:11 +00:00
ppc o Wrap ppc_setup_intr() at 80. 2007-03-06 11:36:33 +00:00
pst o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
puc o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
ral o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
random Use pause() rather than tsleep() on stack variables and function pointers. 2007-02-27 17:23:29 +00:00
ray o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
rc o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
re Catch up the rest of the drivers with the ether_vlan_mtap modifications. 2007-03-04 03:38:08 +00:00
rndtest
rp - Make rp(4) 64-bit- and endian-clean as well as work on strict alignment 2006-11-20 12:59:27 +00:00
rr232x o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
safe o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
sbni o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
sbsh o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
scc o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
scd Use pause() rather than tsleep() on stack variables and function pointers. 2007-02-27 17:23:29 +00:00
sf o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
si o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 20:11:27 +00:00
sio o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
sk o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
smbus Only support the SMB_OLD_BREAD ioctl if one of COMPAT_FREEBSD[456] is 2006-09-26 14:38:56 +00:00
sn o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
snc o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
snp
sound Use M_NOWAIT instead of M_WAITOK to cause malloc() to return NULL. 2007-03-07 05:28:42 +00:00
speaker
spibus MFp4: when passing the transfer up the foodchain, make sure we go up 2006-10-20 07:11:52 +00:00
sr o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
stg o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
stge Catch up the rest of the drivers with the ether_vlan_mtap modifications. 2007-03-04 03:38:08 +00:00
streams Clean up the svr4 socket cache and streams code some to make it more easily 2006-07-21 20:40:13 +00:00
sym Fix typo in comment. 2007-03-05 21:21:03 +00:00
syscons Optimize set_origin() use in some screensavers to stop them eating 2007-02-21 12:27:12 +00:00
tdfx
ti Catch up the rest of the drivers with the ether_vlan_mtap modifications. 2007-03-04 03:38:08 +00:00
trm o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
twa o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
twe o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
tx o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
txp Catch up the rest of the drivers with the ether_vlan_mtap modifications. 2007-03-04 03:38:08 +00:00
uart o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
ubsec o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
usb Some USB mass storage devices return the number of sectors in response 2007-02-27 22:33:50 +00:00
utopia
vge Catch up the rest of the drivers with the ether_vlan_mtap modifications. 2007-03-04 03:38:08 +00:00
vkbd Fix our ioctl(2) implementation when the argument is "int". New 2006-09-27 19:57:02 +00:00
vr o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
vx o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
watchdog Align the interfaces for the various watchdogs and make the interface 2006-12-15 21:44:49 +00:00
wds Catchup with filters 2007-02-23 19:34:52 +00:00
wi o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
wl o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 20:11:27 +00:00
xe o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00