freebsd-dev/sys
Thomas Moestl c944338750 Fix interrupt assignment for non-builtin PCI devices on e450s.
This machine uses a non-standard scheme to specify the interrupts to
be assigned for devices in PCI slots; instead of giving the INO
or full interrupt number (which is done for the other devices in this
box), the firmware interrupt properties contain intpin numbers, which
have to be swizzled as usual on PCI-PCI bridges; however, the PCI host
bridge nodes have no interrupt map, so we need to guess the
correct INO by slot number of the device or the closest PCI-PCI
bridge leading to it, and the intpin.

To do this, this fix makes the following changes:
- Add a newbus method for sparc64 PCI host bridges to guess
  the INO, and glue code in ofw_pci_orb_callback() to invoke it based
  on a new quirk entry. The guessing is only done for interrupt numbers
  too low to contain any IGN found on e450s.
- Create another new quirk entry was created to prevent mapping of EBus
  interrupts  at PCI level; the e450 has full INOs in the interrupt
  properties of EBus devices, so trying to remap them could cause
  problems.
- Set both quirk entries for e450s; remove the no-swizzle entry.
- Determine the psycho half (bus A or B) a driver instance manages
  in psycho_attach()
- Implement the new guessing method for psycho, using the slot number,
  psycho half and property value (intpin).

Thanks go to the testers, especially Brian Denehy, who tested many kernels
for me until I had found the right workaround.

Tested by:	Brian Denehy <B.Denehy@90east.com>, jake, fenner,
		Marius Strobl <marius@alchemy.franken.de>,
		Marian Dobre <mari@onix.ro>
Approved by:	re (scottl)
2003-05-30 20:48:05 +00:00
..
alpha Rename BUS_DMAMEM_NOSYNC to BUS_DMA_COHERENT. 2003-05-30 20:40:33 +00:00
amd64 Rename BUS_DMAMEM_NOSYNC to BUS_DMA_COHERENT. 2003-05-30 20:40:33 +00:00
arm sys/sys/limits.h: 2003-05-19 20:29:07 +00:00
boot Add a new bootloader menu. Pull in screen.4th and frames.4th from the 2003-05-30 09:29:24 +00:00
cam Add a quirk for OTi USB flash key. 2003-05-15 17:35:35 +00:00
coda - Move p->p_sigmask to td->td_sigmask. Signal masks will be per thread with 2003-03-31 22:49:17 +00:00
compat Deal with the user VM space expanding. 32 bit applications do not like 2003-05-23 05:07:33 +00:00
conf Update the kernel compile flags inside the .if ${MACHINE_ARCH} == "amd64" 2003-05-30 01:06:58 +00:00
contrib This commit was generated by cvs2svn to compensate for changes in r115367, 2003-05-28 17:32:31 +00:00
crypto Assembly files put thru the C preprocessor need to have C style comments. 2003-04-21 16:30:12 +00:00
ddb Move the _oncpu entry from the KSE to the thread. 2003-04-10 17:35:44 +00:00
dev Add support for the upcoming 2410SA card. 2003-05-30 09:22:19 +00:00
fs Clean up proc locking in procfs: make sure the proc lock is held before 2003-05-05 15:12:51 +00:00
geom Don't do silly thing if the disk_create() event gets canceled. 2003-05-25 16:57:10 +00:00
gnu This commit was generated by cvs2svn to compensate for changes in r113778, 2003-04-21 02:27:52 +00:00
i4b Rename BUS_DMAMEM_NOSYNC to BUS_DMA_COHERENT. 2003-05-30 20:40:33 +00:00
i386 Rename BUS_DMAMEM_NOSYNC to BUS_DMA_COHERENT. 2003-05-30 20:40:33 +00:00
ia64 Rename BUS_DMAMEM_NOSYNC to BUS_DMA_COHERENT. 2003-05-30 20:40:33 +00:00
isa Only use the pc bios stuff on i386's. I think this might even be unused 2003-05-01 04:23:15 +00:00
isofs/cd9660 Rename vfs_stdsync function to vfs_stdnosync which matches more 2003-03-11 22:15:10 +00:00
kern When loading a module that contains a sysctl which is already compiled 2003-05-29 21:19:18 +00:00
libkern Deprecate machine/limits.h in favor of new sys/limits.h. 2003-04-29 13:36:06 +00:00
modules Move the ips driver from ${MACHINE_ARCH} == "i386" to ${MACHINE} == "i386". 2003-05-13 11:26:08 +00:00
net Replace a handrolled defrag function with m_defrag. The handrolled 2003-05-28 02:04:33 +00:00
netatalk - Use if_broadcastaddr from struct ifnet rather than relying on 2003-03-21 17:53:16 +00:00
netatm Use __FBSDID rather than rcsid[]. 2003-04-03 21:36:33 +00:00
netgraph fix a cut-n-paste error. 2003-05-15 18:51:28 +00:00
netinet Correct a bug introduced with reduced TCP state handling; make 2003-05-07 05:26:27 +00:00
netinet6 Add definitions for IN6ADDR_LINKLOCAL_ALLMDNS_INIT and INADDR_ALLMDNS_GROUP. 2003-04-29 22:03:46 +00:00
netipsec Introduce an M_ASSERTPKTHDR() macro which performs the very common task 2003-04-08 14:25:47 +00:00
netipx Remove unimplemented IP-in-IPX encapsulation support (options IPTUNNEL). 2003-03-08 06:58:22 +00:00
netkey Introduce an M_ASSERTPKTHDR() macro which performs the very common task 2003-04-08 14:25:47 +00:00
netnatm Introduce an M_ASSERTPKTHDR() macro which performs the very common task 2003-04-08 14:25:47 +00:00
netncp - Merge struct procsig with struct sigacts. 2003-05-13 20:36:02 +00:00
netsmb - Merge struct procsig with struct sigacts. 2003-05-13 20:36:02 +00:00
nfs
nfsclient rpc.lockd stability workaround: remove PCATCH from the tsleep() in 2003-05-30 17:15:56 +00:00
nfsserver Beat vnode locking in the NFS server code into submission. This change 2003-05-25 06:17:33 +00:00
opencrypto
pc98 Clear up that COMPAT_43 may not do the same thing on every architecture 2003-05-15 02:10:30 +00:00
pccard 1. Allow drivers to query CIS strings from OLDCARD. 2003-04-23 23:39:21 +00:00
pci Fix support for 256 MB aperture sizes on chipsets such as the 845 and 2003-05-27 20:13:44 +00:00
posix4
powerpc Bring back bus_dmasync_op_t. It is now a typedef to an int, though the 2003-05-27 04:59:59 +00:00
rpc
security Make sure all character pointers are properly initialized; this was 2003-05-30 17:02:36 +00:00
sparc64 Fix interrupt assignment for non-builtin PCI devices on e450s. 2003-05-30 20:48:05 +00:00
sys Rename BUS_DMAMEM_NOSYNC to BUS_DMA_COHERENT. 2003-05-30 20:40:33 +00:00
tools MFp4: 2003-03-28 06:43:50 +00:00
ufs Lock the vm object when performing vm_object_page_clean(). 2003-05-18 22:02:51 +00:00
vm If we seem to be out of VM, don't allow the pagedaemon to kill 2003-05-19 00:51:07 +00:00
Makefile Exclude sys/boot for amd64. There are still toolchain issues to deal 2003-05-08 06:35:39 +00:00