summaryrefslogtreecommitdiff
path: root/sys/arch/alpha/pci
AgeCommit message (Collapse)Author
2011-10-10Introduce pci_probe_device_hook(pci_chipset_tag_t, struct pci_attach_args *).Miod Vallat
This mandatory function will get invoked in pci_probe_device(), and allows a pci host driver to alter the pci_attach_args passed to a device when attaching. This function will also, if returning non-zero, cause the device to be skipped completely during all the phases of the PCI device discovery (i.e. ressource enumeration, ressource assignment, and actual attachment). This particular feature is experimental and might be reverted in the future (or the scope narrowed to device attachment only). A dummy #define pci_probe_device_hook() 0 is added to all platforms except sgi, where real functions (currently only returning 0) are added; real meat will be added shortly. Discussed at s2k11, no objection from the usual suspects.
2011-05-21Add pci_intr_map_msi() stub.Mark Kettenis
2011-04-15More than a decade ago, interrupt handlers on sparc started returning 0Theo de Raadt
(interrupt was not for me), 1 (positive interrupt was for me), or -1 (i am not sure...). We have continued with this practice in as many drivers as possible, throughout the tree. This makes some of the architectures use that information in their interrupt handler calling code -- if 1 is returned (and we know this specific machine does not have edge-shared interrupts), we finish servicing other possible handlers on the same pin. If the interrupt pin remains asserted (from a different device), we will end up back in the interrupt servicing code of course... but this is cheaper than calling all the chained interrupts on a pin. This does of course count on shared level interrupts being properly sorted by IPL. There have been some concerns about starvation of drivers which incorrectly return 1. Those drivers should be hunted down so that they return -1. (other architectures will follow) ok kettenis drahn dlg miod
2010-12-04Introduce a new pci routine, pci_conf_size(), which returns the size of aMiod Vallat
given pcitag_t configuration address space. Currently, all pci controllers will return the usual 0x100 bytes of PCI configuration space, but this will eventually change on PCIe-capable controlers. ok kettenis@
2010-08-07No "\n" needed at the end of panic() strings.Kenneth R Westerback
Bogus chunks pointed out by matthew@ and miod@. No cookies for marco@ and jasper@. ok deraadt@ miod@ matthew@ jasper@ macro@
2010-06-29Add support for mapping ACPI to PCI devicesJordan Hargrave
ok kettenis, deraadt
2010-06-06Kill unused sio_intr_count.Miod Vallat
2010-04-21more proc.h neededTheo de Raadt
2010-04-20more misuse of user.h and sysctl.hTheo de Raadt
2010-02-18improve startup messages rewording them in a more usual way; as aIgor Sobrado
side effect, this change makes displayed messages shorter. miod@ has observed that `Horse' is the codename of the chip, which gets paired with a `Saddle' companion chip. there is one hose (i.e., bus) per chip; others (`Tsunami') have two hoses per chip, or even four (`Typhoon'); so, `Horse' is not really a typo. written with clever advice from krw@ and miod@ miod@ has suggested the capitalization for `Saddle'. ok krw@, miod@
2009-12-25Add bus_space_vaddr() when applicable; from NetBSD.Miod Vallat
2009-10-02Support for DS15/DS25/ES45 (Titan) alpha models (rpb family 38). These systemsMiod Vallat
are very close to the Tsunami systems (rpb family 34) and share the existing Tsunami code; the tsc(4) Tsunami controller code is extended to handle the Titan differences, except for the Titan AGP GART which is left unsupported for now. Tested to not cause regressions on DS20 (deraadt@) and ES40 (miod@). Titan support tested by Sergey Prysiazhnyi on DS25, many thanks for your time!
2009-09-30Fix various off-by-ones in irq number validation.Miod Vallat
2009-09-30Remove unused last argument of alpha_shared_intr_disestablish().Miod Vallat
2009-09-30Clear sticky error status after recoverable machine check.Miod Vallat
From FreeBSD.
2009-09-17Fail bus_space_map() calls if the flags can't be honoured (such asMiod Vallat
BUS_SPACE_MAP_LINEAR in i/o space, or noncacheable linear TURBOchannel mappings). From NetBSD
2009-09-17Return a dense mapping for BUS_SPACE_MAP_PREFETCHABLE mappings; repairesMiod Vallat
tga on non-bwx machines. Reported and fix tested by kurt@
2009-08-22Constify the what/name parameter of pci_intr_establish().Michael Knudsen
Tested by myself, sthen, oga, kettenis, and jasper. Input from sthen and jasper. ok kettenis (Manpage follows shortly.)
2009-07-30Get rid of the obsolet BUS_BARRIER_xxx constants for bus_space_barrier(), onlyMiod Vallat
provide and use BUS_SPACE_BARRIER_xxx.
2009-07-26Make sure all platforms understand the flags argument of bus_space_map() andMiod Vallat
bus_space_alloc() as a bitmask of flags, and not a boolean controlling cacheability; and make sure the three MI BUS_SPACE_MAP_xxx values documented in the manual page are defined on all platforms as well.
2009-06-21fix rcs ids. ok sthen@Martynas Venckus
2009-03-30bzero pci attach argsMark Kettenis
2009-02-01Remove unused _pfthresh member from struct alpha_bus_dma_tag.Miod Vallat
2008-10-17Remove clauses 3 and 4 from NetBSD license.Okan Demirmen
from ray; ok ray, deraadt
2008-08-09Do not forget to set the ``specific EOI'' bit when sending a... specific EOI;Miod Vallat
from NetBSD.
2008-07-29Give the eisa device a valid bus_dma_tag_t.Miod Vallat
2008-07-29Fix range check in sio_intr_establish().Miod Vallat
2008-07-25Improve eisa bus probe by deciding the number of logical eisa slots fromMiod Vallat
the motherboard eisa id, instead of using a ``one size fits all'' value which is too large on more than half the eisa-capable alpha designs. The id -> slot # logic is based on the alpha ECU configuration files, so we should not perform worse than ECU itself (and see all slots ECU sees too).
2008-07-22None of the pceb EISA alpha designs has more than 8 physical slots, so don'tMiod Vallat
bother trying to probe more.
2008-07-22Proper interrupt swizzling for devices behind bridges; matches what SRMMiod Vallat
configures when it can. ok kettenis@
2008-07-22Modify pci_intr_map() implementation to pass the pci_attach_args to theMiod Vallat
per-platform implementation, instead of selected members of it; this allows us to get rid of some globals, and paves the way for better bridge support on some models.
2008-07-19In dec_1000a_intr_map(), use the SRM hint if available. This allows cardsMiod Vallat
plugged to the bottom 4 PCI slots of AlphaServer 1000A (attaching to pci1 behind a ppb) to get interrupts. No regressions on AlphaServer 800 (which do not have these extra slots).
2008-07-19Add code to walk the eisa configuration, from NetBSD. This configurationMiod Vallat
is not used yet, but this seems to ``warm up'' the eisa chips so that accesses to the eisa bus later do not cause machine checks.
2008-07-19In _io_map(), make sure the whole range fits in one of the io windows,Miod Vallat
instead of only the starting address. From NetBSD.
2008-06-26First pass at removing clauses 3 and 4 from NetBSD licenses.Ray Lai
Not sure what's more surprising: how long it took for NetBSD to catch up to the rest of the BSDs (including UCB), or the amount of code that NetBSD has claimed for itself without attributing to the actual authors. OK deraadt@
2008-01-09Make dec_xxx_intr_map() fail silently; caller will print a message ifMark Kettenis
appropriate. Removes unwanted messages that got printed when mapping pins on PCI-PCI bridges that don't matter. ok miod@
2007-11-03use DEVICE_IS_VGA_PCI in vga_pci_match()Martin Reindl
ok brad@ fgsch@ also tested by oga@
2007-10-08More simple memset(,0,) -> M_ZERO changes. In this batch move toKenneth R Westerback
size(*p) as the first malloc() parameter where p is declared locally and thus easy to check. Add M_ZERO to gpe_table allocation in acpi.c even though there is no obvious bzero or memset nearby.
2007-05-02supply the real devicename to sio_intr_establish() instead a genericMartin Reindl
platform interrupt string when establishing pciide interrupts
2007-04-18Contrary to the comment in cia_dma_get_tag(), there are machines with ciaMartin Reindl
that have over 1.0G. Allow direct dma requests to fall back to SGMAPs. From NetBSD via brad; discussed with Miod, tested by myself
2007-03-16add DEC_KN300 support from NetBSD;Robert Nagy
This code makes it possible to run on some of the AlphaServers, namely AlphaServer 4100 and 1200. add mcbus(4) and mcpcia(4) to provide support for the system bus and the MCPCIA-to-PCI bus adapter that can be found in these systems allow the pci_swiz_bus code to handle variable extent names to be able to handle more than one mcpcia(4) "just commit it" deraadt@
2006-12-14Make pci subsystem aware of domains. Each host bridge gets assigned a uniqueMark Kettenis
domain number such that we can distinguish between busses with the same bus number that are behind different host bridges. Domains can be accessed by using different device nodes. ok deraadt@
2006-06-15Rework the interrupt code, shaving some cycles off in the process.Brad Smith
Rather than an "iointr" routine that decomposes a vector into an IRQ, we maintain a vector table directly, hooking up each "iointr" routine at the correct vector. This also allows us to hook device interrupts up to specific vectors. From thorpej NetBSD Tested by myself and a number of end-users.
2006-04-04Add a `prefetch threshold' member to the bus_dma_tag_t, so thatBrad Smith
eventually we can determine whether or not to allocate a spill page on a per-mapping basis. From NetBSD ok martin@
2006-03-26Replace usage of alpha_pci_decompose_tag() with pci_decompose_tag() andBrad Smith
remove alpha_pci_decompose_tag(). From NetBSD ok martin@
2006-03-20factorize SGMAP-mapped DMA map creation and destroy codeMartin Reindl
ok miod@, additional testing jsg@ from NetBSD
2006-03-16Get rid of specific softc structure for pci host bridges, as it is neverMiod Vallat
used. No functional change.
2006-03-13* Add "pcitag_t *pba_bridgetag" to pci_attach_args. This is set toBrad Smith
NULL for root PCI busses. For busses behind a bridge, it points to a persistent copy of the bridge's pcitag_t. This can be very useful for machine-dependent PCI bus enumeration code. From NetBSD ok grange@ kettenis@
2006-01-29Add a alpha_shared_intr_reset_strays() function that resets the strayMartin Reindl
interrupt counter for a given shared interrupt descriptor. When an interrupt is successfully handled, reset the strays counter, thus preventing a "slow leak" from eventually shutting off the interrupt vector. from NetBSD via KUDO Takashi
2006-01-04missing zeroMartin Reindl
from KUDO Takashi