summaryrefslogtreecommitdiffstats
path: root/sys/sparc64/pci
Commit message (Collapse)AuthorAgeFilesLines
* Add "pci108e,8000" (psycho) and "pci108e,a000" (US-IIi sabre) to the list oftmm2002-10-161-37/+54
| | | | | | | | | | recognized compat properties. This should make the psycho driver attach properly on SPARCengine Ultra AX machines. Switch to a table-driven logic to recognize the ID's, since their number is now large enough to justify this. These changes are analogous to those made in NetBSD r.1.35, but implemented a bit differently.
* Use a linked list to keep the psycho softcs instead of a staticallytmm2002-10-162-22/+12
| | | | | | sized array. While being there, deuglify the psycho pair detection loop which became quite awkward in a previous code reorganization.
* Renamed intr_enqueue to intr_vector and intr_dequeue to intr_fast, tojake2002-09-281-1/+1
| | | | better reflect how they are called.
* When multiple IOMMUs are present in a system, use a single TSB for alltmm2002-07-161-1/+1
| | | | | | | | | | | of them, and couple them by always performing all operations on all present IOMMUs. This is required because with the current API there is no way to determine on which bus a busdma operation is performed. While being there, clean up the iommu code a bit. This should be a step in the direction of allow some of larger machines to work; tests have shown that there still seem to be problems left.
* Add PCI bus enumeration and latency timer setup to the sparc64 MD PCItmm2002-06-124-88/+203
| | | | | | | | code. Both tasks are not always performed completely by the firmware. The former is required to get some e450 models to boot; the latter fixes the repeated fifo underruns with hme(4)s and gem(4)s observed on some machines (and probably performance problems with other peripherals as well).
* Do not try to set up the PCI bus B error interrupt on "sabre"s, sincetmm2002-04-021-12/+14
| | | | | it is only available on "psycho"s. The same applies to the power management interrupt, which is not enabled by default though.
* Revamp the busdma implementation a bit:tmm2002-03-241-32/+41
| | | | | | | | | | | | - change the IOMMU support code so that it supports overcommittting the available DVMA memory, while still allocating as lazily as possible. This is achieved by limiting the preallocation, and deferring the allocation to map load time when it fails. In the latter case, the DVMA memory reserved for unloaded maps can be stolen to free up enough memory for loading a map. - allow NULL settings in the method tables, and search the parent tags until an appropriate implementation is found. This allows to remove some kluges in the old implementation.
* Make the OpenFirmware interrupt mapping code more generic, to reducetmm2002-03-245-127/+66
| | | | | | | | | | the bus-dependent code and to be able to support more systems. The core of the new code is mostly obtained from NetBSD. Kluge the interrupt routing methods of the psycho and apb drivers so that an intline of 0 can be handled for now; real routing is still not possible (all intline registers are preinitialized instead); this will require a sparc64-specific adaption of the driver for generic PCI-PCI bridges with a custom routing method to work right.
* Map the device memory belonging to resources of type SYS_RES_MEMORY intotmm2002-03-241-0/+17
| | | | KVA upon activation so that rman_get_virtual() works as expected.
* Add code to print the fault virtual address for uncorrectable DMA errorstmm2002-03-232-0/+17
| | | | | caused by IOMMU misses to aid debugging. This will only work on UltraSPARC-IIi and IIe.
* Add PCIfunctions 2 and 3 of the PCIO2 chip to the intpin quirk table.tmm2002-03-231-2/+4
|
* Add a DEBUGGER_ON_POWERFAIL option. This makes the power button on ultra 10sjake2002-03-131-0/+7
| | | | work like an NMI button.
* Merge r1.39 from NetBSD (manage both streaming caches for psycho pairs).tmm2002-02-133-473/+368
| | | | | | Use explicit bus space accesses instead of mapping the device memory into kva. Fix support for psycho pairs, and catch up with iommu code changes.
* Don't panic when no interrupt map can be found for a PCI bus; this seemstmm2002-02-131-2/+5
| | | | to happen on some models, like the Netra T1.
* Correct the defintion of struct ofw_upa_regs, and use it instead oftmm2002-01-022-31/+37
| | | | | | | struct ofw_nexus_reg. Implement UPA device memory management in the nexus driver. Adapt the psycho driver to these changes, and do some minor cleanup work while being there.
* Do not include pcib.h, which only existed in my development tree, and dotmm2001-12-301-2/+1
| | | | | | | not use struct pcib_softc when struct apb_softc would be correct. Spotted by: jake Pointy hat to: tmm
* Add a workaround for quirky PCI devices that set the intpin register totmm2001-12-211-20/+66
| | | | | | 0, but use this mechanism to generate interrupts. Preserve the child device when setting up and tearing down interrupts. Some style nits.
* Make the apb driver independent of the standard PCI bridge driver.tmm2001-12-211-30/+82
|
* Add a file forgotten in the previous commit (a kobj interface thattmm2001-11-091-0/+75
| | | | defines methods that need to be implemented by sparc64 host bridge drivers).
* Add support for the Sun psycho/sabre UPA-PCI bridge, some OpenFirmwaretmm2001-11-096-0/+2382
PCI support code, and a driver for the Sun APB PCI-PCI bridge. Partly ported from NetBSD.
OpenPOWER on IntegriCloud