summaryrefslogtreecommitdiff
path: root/sys/arch/alpha/pci
AgeCommit message (Collapse)Author
2016-01-12dev/isa/isavar.h does not appear to be needed by any of consumers.Theo de Raadt
(noticed because of another issue: one consumer is a high level busdriver, but also contains i2c support, so the isa #define for ia_irq clashes against i2c)
2015-10-30Use NULL instead of 0 for pci_decompose_tag() pointer arguments.Miod Vallat
2015-08-15If the SRM has explicitely set up some ISA interrupts level-triggered,Miod Vallat
honour this setting and consider them level-triggered instead of `polarity decided by the first driver to use it'. Add explicit code to turn registration of edge-triggered interrupts 3 and 4 into level-triggered, if they were set up a level-triggered by the SRM. Based upon a NetBSD diff which eventually got reverted in NetBSD. However, it turns out this is necessary for the kernel to correctly run with serial console on my Multia.
2015-08-15Store the {e,}isa_chipset_t in the softc, rather than on sio_bridge_callback()'sMiod Vallat
stack, for {e,}isa drivers might have a need for them way after autoconf - at least pcic@isa does.
2015-08-15No need to cargo-cult include <alpha/pci/sioreg.h> here.Miod Vallat
2015-08-15Fix isa_chipset_t ic_intr_{alloc,check} prototype: these take anMiod Vallat
isa_chipset_tag_t, not an isa_chipset_tag_t *, as isa_chipset_tag_t is already a pointer.
2015-07-26Make sure pci_intr_map() will perform proper interrupt swizzling for devicesMiod Vallat
behind a bridge, if the SRM didn't pick an interrupt line for them.
2015-07-18Correctly set up interrupts; now the kernel no longer get stuck with an SCSIMiod Vallat
interrupt storm at the end of autoconf.
2015-07-18Check for errors in the status register after performing a PCI configurationMiod Vallat
space read, for errors may not cause a machine check. This makes phantom PCI devices disappear on alphabook.
2015-01-03Some bowels of the bus_dma code assume it is ok to perform bitwise operationsMiod Vallat
with the base address of the window, which only works if its size is smaller than the address it begins at. Until these assumptions are carefully fixed, revert r1.9, and go back to using only one direct map window.
2014-12-24tsciic(4): i2c controller onboard Tsunami and Titan chipsets, gives access toMiod Vallat
the fan sensors on systems without RMC. From NetBSD, ok deraadt@
2014-10-12remove some unused filesJonathan Gray
ok miod@
2014-06-14Preallocate sgmap extent regions for tsp, cia and mcpcia dma maps, which fallJonathan Matthew
back to sgmap if the direct mapping fails. ok miod@
2014-05-08Format string fixes for alpha kernels, and remove -Wno-formatMiod Vallat
2014-04-14Fewer <uvm/uvm.h>Martin Pieuchot
2014-04-04It seems that, when the on-board USB controller is an ALI M5237 USB and itsMiod Vallat
interrupt is routed through the ISA PIC, the interrupt is edge-triggered (despite PCI interrupts being level-triggered). Attempt to recognize this and correctly setup the PIC ELCR register to `edge'. This allows ES40 systems (and maybe others, but apparently all the other alpha systems with on-board M5237 correctly route its interrupt as a PCI interrupt) to reliably boot multiuser without suffering from USB interrupt storms (this is especially noticeable when using glass console which, unlike serial console, does not trigger other interrupts to give other devices a chance to run). However, this is not enough yet to allow for proper USB device usage; your mileage may vary. Tested by bluhm@ and me. Putting it early in the release cycle so that regressions on other systems, if any, can hopefully get noticed soon enough.
2014-03-29It's been a quarter century: we can assume volatile is present with that name.Philip Guenther
ok dlg@ mpi@ deraadt@
2014-02-23fix a printf in a debug pathJonathan Gray
ok miod@
2014-02-18sio_intr_shutdown() used to be a shutdown hook, and eventually became anMiod Vallat
unconditional call in machdep.c!boot(). Except that the cpp conditional enabling its use was not in machdep.c's scope, so this function was never called. Ouch. Remove it from boot() and grow a ca_activate method to the sio(4/alpha) device, which will take care of invoking sio_intr_shutdown() if DVACT_POWERDOWN.
2014-01-06Program window #2 to allow the second GB of low memory to use direct DMA;Miod Vallat
adapted from a long gone FreeBSD.
2013-11-05Add a stub for the new MD hook needed to handle ACPI Power Resources.Martin Pieuchot
ok kettenis@
2013-06-04Disable parity on the PCI bus; according to Linux, some lca-based systems hitMiod Vallat
siop data parity errors when parity is enabled. This ought to help Alphabook systems, as well as early Multia. Tested on Multia.
2013-03-09First steps towards alphabook1 support; from netbsdTheo de Raadt
miod did not disagree.
2013-03-08Stop defining __NO_ISA_INTR_CHECK and add a real isa_intr_check() function.Miod Vallat
Allows pcic to attach and correctly pick a suitable interrupt on Multia.
2013-03-08Always initialize the direct DMA window, instead of relying upon SRM to do so;Miod Vallat
many LCA-based systems apparently don't. From NetBSD.
2013-03-02Replace magic numbers with more meaningful (1 << interrupt#) constructs.Miod Vallat
No functional change.
2012-12-05Remove excessive sys/cdefs.h inclusionTheo de Raadt
ok guenther millert kettenis
2012-10-20move sio_intr_shutdown() from being a shutdownhook, and do it directly inTheo de Raadt
boot() as required. ok miod
2012-09-04Implement pci_min_powerstate().Mark Kettenis
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