summaryrefslogtreecommitdiffstats
path: root/sys/alpha/pci
Commit message (Collapse)AuthorAgeFilesLines
* A quick fix to get around a problem (described below) with cia basedgallatin2000-09-022-3/+5
| | | | | | | | | | | | | | | | | machines. The patch uses an existing global variable in place of the newbus accessor to get at use_bwx. This is a quick fix to get miatas booting again; somebody with more newbus skills than I can muster will have to correct it. Matt Jacob's description of the problem from the -alpha list: The IVAR accessor stuff for pcib is incompletely specified for CIA. There's only one accessor defined, and that's to get the BUS instance number. <..> The device methods that try and get at the use_bwx get overriden because there's only one ivar for CIA's pcib, and that's for hose #, and it's always zero.
* Introduce explicit break statements in the various chipsets'gallatin2000-08-316-0/+28
| | | | | | | | | | foo_pcib_[read|write]_config() functions rather than relying on a break or return being in the CFG macro. This fixes a panic later in the boot process on a UP1000. From inspection, it looks like this fixes a similar problem in the tsunami code. Approved by: dfr
* fix a typo introduced by Doug's busspace changes that causes UP1000s togallatin2000-08-311-1/+1
| | | | | | crash very early in the boot process with a ksp not valid halt to the SRM. submitted by: dfr
* * Completely rewrite the alpha busspace to hide the implementation fromdfr2000-08-2822-2210/+1468
| | | | | | | | | | | | the drivers. * Remove legacy inx/outx support from chipset and replace with macros which call busspace. * Rework pci config accesses to route through the pcib device instead of calling a MD function directly. With these changes it is possible to cleanly support machines which have more than one independantly numbered PCI busses. As a bonus, the new busspace implementation should be measurably faster than the old one.
* Do the same thing for TurboLaser that was done for Rawhide- make roommjacob2000-07-101-1/+1
| | | | | for secondary (bridged) PCI busses by making primary PCI instances 16 units apart.
* Don't let the infrastructure assign the 'next' PCI bus for us.mjacob2000-07-101-1/+1
| | | | | | | Instead, for now (until we get a pci infrastructure cleanup), assign the PCI bus number to be mcpcia bus instance << 4. This is to allow secondary bridges some room to be recongnized on 4100 systems.
* Support for unsigned integer and long sysctl variables. Update thejhb2000-07-051-4/+4
| | | | | | | | | SYSCTL_LONG macro to be consistent with other integer sysctl variables and require an initial value instead of assuming 0. Update several sysctl variables to use the unsigned types. PR: 15251 Submitted by: Kelly Yancey <kbyanc@posi.net>
* Add support for the Alpha Processor, Inc. UP1000 system.gallatin2000-06-194-0/+588
| | | | | Reviewed by: dfr Thanks to: Alpha Processor Inc. for supplying the hardware.
* Sometimes there isn't an ISA bus configured.mjacob2000-06-121-0/+4
|
* Part of AS2100 support that I neglected to commit last nightgallatin2000-05-281-0/+29
| | | | pointed out by: dfr
* Add AlphaServer 2000 (demi-sable), 2100 (sable), and 2100A (lynx) support.gallatin2000-05-283-0/+917
| | | | | | | | | Only PCI and on-board ISA peripherials are supported at this time. This support has been only lightly tested due to a lack of response to my call for testers on the freebsd-alpha mailing list. It works quite well on the one AS2100 on which it has been tested, but it may not work on an AS2100A and should therefore be regarded as experimental.
* Handle PCI devices that actually use an ISA IRQ for the cia and tsunamijhb2000-05-103-5/+51
| | | | | | | | chipsets. An example of this is the USB controller on these chipsets. With this, I can now use USB devices on the test Alpha I am borrowing at the moment. Reviewed by: dfr, obrien
* add in stubbie mcpcia_pci that will parent PCI bussesmjacob2000-05-071-0/+80
|
* Add $FreeBSD$peter2000-05-014-0/+4
|
* Alpha 8200: Add in a dummy child of dwlpx so that we can make the leapmjacob2000-03-181-0/+80
| | | | | | from DWLPX to PCI space. Just a methods holder such that we have a parent which is a "pcib" and we create a child which is a "pci". Add the appropriate ivar code (which is for a hose #).
* Alpha 8200: Do some compilation cleanup. Conditionalize some IDE stuffmjacob2000-03-181-6/+35
| | | | | | | | | | | based upon presence/absence of ISA (there is no ISA bus on an 8200- okay, well, there *could* be one in a DWLPX tray, but we don't support it)). Most importantly change the interrupt resource map to cover a whole 16 bits. The 8200 uses 16 bit interrupt vectors which we construct that contain the I/O-board, hose, an pci slot in them, and then we write these vectors into the appropriate DWLPX registers. At any rate, a flat array of 64 'IRQs' isn't enough.
* Update the ata driver to take more advantage of newbus, thissos2000-02-181-14/+23
| | | | | | | | | | | | | | | | was needed to make attach/detach of devices work, which is needed for the PCCARD support. (PCCARD support is still not working though, more to come on that) Support the CMD646 chip which is used on many alphas, sadly only in WDMA2 mode, as the silicon is broken beyond belief for UDMA modes. Lots of cosmetic fixes here and there. Sorry for the size of this megapatchfromhell but it was not possible otherwise... newbus patches based on work from: dfr (Doug Rabson)
* Make devices behind PPBs work on DS10s (and any other single pchip tsunamis)gallatin2000-01-201-9/+1
| | | | | | I was wagering on DEC being elegant & numbering PCI buses normally on machines with one pchip. It looks like they went with consistent -- buses behind ppbs begin with bus 2.
* Improve the mapping between the hardware PCI bus numbering on multi-hosegallatin1999-12-142-17/+81
| | | | | | | | | | | | | | tsunami systems and the PCI bus-numbering system of FreeBSD. Eg, the former allows for 2 PCI bus 2's (one each on hoses 0 and 1) while the latter needs to give each PCI bus a unique monotonically increasing number. It has been fairly well tested and correctly maps machines with a ppb on hose 1 as well as machines with ppbs on both hoses. DS10s remain untested, as I do not have a pci card with a ppb which will pass POST in a tsunami. This is a house of cards.
* Remove the 'ivars' arguement to device_add_child() andmdodd1999-12-038-8/+10
| | | | | | | | | | | | | | | | device_add_child_ordered(). 'ivars' may now be set using the device_set_ivars() function. This makes it easier for us to change how arbitrary data structures are associated with a device_t. Eventually we won't be modifying device_t to add additional pointers for ivars, softc data etc. Despite my best efforts I've probably forgotten something so let me know if this breaks anything. I've been running with this change for months and its been quite involved actually isolating all the changes from the rest of the local changes in my tree. Reviewed by: peter, dfr
* Mchines whose interrupts are not routed through the ISA pic were stillgallatin1999-11-161-3/+11
| | | | | | | | | | | | | | registering their interrupts with rman as though they were going through the ISA pic. This prevents a conflict between isa & pci for irqs on such machines. Also hookup the chipset struct before calling platform.pci_intr_init(). This allows me to call inw/outw down in the platform code. Add interrupt printfs to match the CIA chipset. Reviewed by: dfr Tested by: wilko
* Add a second direct map window to increase the maximum RAM this platformgallatin1999-11-031-28/+43
| | | | | | | can deal with from 1GB to 2GB. I have no way to test with >1GB because I don't have high enough density memory to get any one box over 1GB. However, I have tested it on xp1000 & ds10 with < 1GB of memory & have verified that it does no harm.
* useracc() the prequel:phk1999-10-294-4/+0
| | | | | | | | | | | Merge the contents (less some trivial bordering the silly comments) of <vm/vm_prot.h> and <vm/vm_inherit.h> into <vm/vm.h>. This puts the #defines for the vm_inherit_t and vm_prot_t types next to their typedefs. This paves the road for the commit to follow shortly: change useracc() to use VM_PROT_{READ|WRITE} rather than B_{READ|WRITE} as argument.
* * Implement bus_set/get/delete_resource for pci.dfr1999-10-141-15/+6
| | | | | | | * Change the hack used on the alpha for mapping devices into DENSE or BWX memory spaces to a simpler one. Its still a hack and should be a seperate api to explicitly map the resource. * Add $FreeBSD$ as necessary.
* allow pci_ioctl to work with multi-hose alphas.gallatin1999-10-123-5/+27
| | | | | | | | Rather than teaching pci_ioctl about hoses, we just pass down a magic number & let the platform code figure out what the hose is based on what the bus number is. concept approved by dfr
* This fix allows cards inserted in one of the bottem-most slots on an xp1000gallatin1999-09-301-2/+2
| | | | | | | | | | | | (behind the built-in ppb on hose 1) to be found: When testing the adaptec controller on alpha, I realized I misread the xp1000 documentation and the way I'm calculating the bus number for PCI config space accesses on the tsunami is wrong. I had thought that a bus behind a ppb should be numbered as the nth bus in that hose, but it actually needs to be the nth global bus within the system. The bus number for the primary bus on a hose must always remain 0 when calculating config space addresses.
* $Id$ -> $FreeBSD$ (some mangled and/or hidden ones)peter1999-08-281-1/+1
|
* $Id$ -> $FreeBSD$peter1999-08-2815-15/+15
|
* Some very minor changes to the ISA dma code.dfr1999-08-251-3/+3
|
* Enable S/G IO. Based on Doug's changes to cia.cgallatin1999-08-111-1/+65
|
* - detect the number of pchips actually present; don't just assume 2gallatin1999-08-102-8/+91
| | | | - support S/G DMA for ISA devices
* Support S/G DMA so that ISA devices (like the floppy disk) work.gallatin1999-08-101-1/+71
| | | | | | Based on Doug's changes to cia.c tested by: Matthew Jacob <mjacob@feral.com>
* On an AS 600 5/266 (and possibly others), accessing the configurationgallatin1999-07-291-3/+26
| | | | | | | | | space of PCI devices that don't exist cause PCI master & target aborts rather than returning ~0 or giving a machine check. Bring in some code from NetBSD to handle this properly. obtained from: NetBSD reviewed by: dfr
* Add support for SYS_RES_DENSE and SYS_RES_BWX resource types. These aredfr1999-07-281-6/+24
| | | | | | | | | equivalent to SYS_RES_MEMORY for x86 but for alpha, the rman_get_virtual() address of the resource is initialised to point into either dense-mapped or bwx-mapped space respectively, allowing direct memory pointers to be used to device memory. Reviewed by: Andrew Gallatin <gallatin@cs.duke.edu>
* Pull some prototypes into scopepeter1999-07-012-1/+3
|
* Get prototype for isa_init_intr().peter1999-07-011-1/+2
|
* Fix a warning, and pull prototypes into scope for ide/isa interrupt setup.peter1999-07-011-2/+3
|
* * Implement ISA dma (only for CIA now but more chipsets to follow).dfr1999-06-051-1/+144
| | | | * Port the fd driver to alpha.
* Add support for the DEC_ST6600 family of alphas. This includes thegallatin1999-05-264-0/+802
| | | | | | | | | | | | | Compaq XP1000, AlphaServer DS20, AlphaServer DS10, and DP264 This has been tested *only* on XP1000's. I'll be interested to hear from owners of other types of DEC_ST6600 alphas. I'd like to thank Don Rice of Compaq for providing the documentation required to support this platform on FreeBSD. I'd also like to thank Doug Rabson for newbus, and for helping me get a multiple hoses working with newbus. Reviewed by: Doug Rabson <dfr@nlsystems.com>
* Add support for multiple PCI "hoses" used on various alpha platforms.gallatin1999-05-207-45/+87
| | | | | | | | | The specific intent of this commit is to pave the way for importing Compaq XP1000 support. These changes should not affect the i386 port. Reviewed by: Doug Rabson <dfr@nlsystems.com> (actually, he walked me through most of it & deserves more than reviewd-by credit )
* Nearly forgot, remove pci_cfgopen() - it's unused on the alpha and is nopeter1999-05-181-7/+1
| | | | longer exported on the i386.
* Unused variablepeter1999-05-101-3/+1
|
* Move the declaration of the interrupt type from the driver structuredfr1999-05-087-20/+18
| | | | to the BUS_SETUP_INTR call.
* Stage 1 of a cleanup of the i386 interrupt registration mechanism.peter1999-04-211-36/+1
| | | | | | | Interrupts under the new scheme are managed by the i386 nexus with the awareness of the resource manager. There is further room for optimizing the interfaces still. All the users of register_intr()/intr_create() should be gone, with the exception of pcic and i386/isa/clock.c.
* Add seatbelts.dfr1999-04-191-2/+5
|
* Bring the 'new-bus' to the i386. This extensively changes the way thepeter1999-04-167-42/+386
| | | | | | | | | | | | | | | | | | i386 platform boots, it is no longer ISA-centric, and is fully dynamic. Most old drivers compile and run without modification via 'compatability shims' to enable a smoother transition. eisa, isapnp and pccard* are not yet using the new resource manager. Once fully converted, all drivers will be loadable, including PCI and ISA. (Some other changes appear to have snuck in, including a port of Soren's ATA driver to the Alpha. Soren, back this out if you need to.) This is a checkpoint of work-in-progress, but is quite functional. The bulk of the work was done over the last few years by Doug Rabson and Garrett Wollman. Approved by: core
* Fix some warnings.dfr1999-03-281-11/+1
|
* Added support for the DEC EB64PLUS systype. (part I)gallatin1999-01-182-5/+114
| | | | | | | | | | | | | The new file pci_eb64plus_intr.s deals with the interrupt hardware on the EB64PLUS and was obtained from NetBSD with the NetBSD copyright intact The apecs chipset support code was altered to allow routing interrupts through pci if we're not running on an avanti. Avanti's route all interrupts through isa. Tested by: Wilko Bulte <wilko@yedi.iaf.nl> Partially reviewed by: dfr
* Fix some 64bit truncation problems which crept into SYSCTL_LONG() with thedfr1998-12-271-8/+5
| | | | | | | | last cleanup. Since the oid_arg2 field of struct sysctl_oid is not wide enough to hold a long, the SYSCTL_LONG() macro has been modified to only support exporting long variables by pointer instead of by value. Reviewed by: bde
* Examine all occurrences of sprintf(), strcat(), and str[n]cpy()archie1998-12-043-7/+7
| | | | | | | | | | | | | | for possible buffer overflow problems. Replaced most sprintf()'s with snprintf(); for others cases, added terminating NUL bytes where appropriate, replaced constants like "16" with sizeof(), etc. These changes include several bug fixes, but most changes are for maintainability's sake. Any instance where it wasn't "immediately obvious" that a buffer overflow could not occur was made safer. Reviewed by: Bruce Evans <bde@zeta.org.au> Reviewed by: Matthew Dillon <dillon@apollo.backplane.com> Reviewed by: Mike Spengler <mks@networkcs.com>
OpenPOWER on IntegriCloud