summaryrefslogtreecommitdiffstats
path: root/sys/alpha/pci/cia.c
Commit message (Collapse)AuthorAgeFilesLines
* First pass at removing Alpha kernel support.jhb2006-05-111-580/+0
|
* Replace __RMAN_RESOURCE_VISIBLE with calls to public entry pointsphk2005-09-251-7/+6
| | | | in rman module.
* Relocate direct map specs into struct alpha_chipset.ticso2005-09-191-0/+3
| | | | | Prepare for PCI Scatter-Gather map. Panic if driver tries alpha_XXX_dmamap() out of range.
* Begin all license/copyright comments with /*- or #-imp2005-01-051-1/+1
|
* Catch up with __RMAN_RESOURCE_VISIBLE enough to get GENERIC to buildgallatin2004-07-011-0/+1
|
* Widen the enable/disable helper function's argument in line with thepeter2003-11-171-2/+2
| | | | ithread_create() changes etc. This should be mostly a NOP.
* Cleanup <machine/cpu.h> by moving MD prototypes to <machine/md_var.h>marcel2003-08-171-3/+5
| | | | | | | | | | | | | | | like we have on other platforms. Move savectx() to <machine/pcb.h>. A lot of files got these MD prototypes through the indirect inclusion of <machine/cpu.h> and now need to include <machine/md_var.h>. The number of which is unexpectedly large... osf1_misc.c especially is tricky because szsigcode is redefined in one of the osf1 header files. Reordering of the include files was needed. linprocfs.c now needs an explicit extern declaration. Tested with: LINT
* Use __FBSDID().obrien2003-06-101-3/+3
|
* Fix abuses of cpu_critical_{enter,exit} by converting toimp2002-03-211-6/+6
| | | | | intr_{disable,restore} as well as providing an implemenation of intr_{disable,restore}.
* Introduce a standard name for the lock protecting an interrupt controllerjhb2001-12-201-3/+15
| | | | | | | | and it's associated state variables: icu_lock with the name "icu". This renames the imen_mtx for x86 SMP, but also uses the lock to protect access to the 8259 PIC on x86 UP. This also adds an appropriate lock to the various Alpha chipsets which fixes problems with Alpha SMP machines dropping interrupts with an SMP kernel.
* Modify the critical section API as follows:jhb2001-12-181-4/+4
| | | | | | | | | | | | | | | | | | | - The MD functions critical_enter/exit are renamed to start with a cpu_ prefix. - MI wrapper functions critical_enter/exit maintain a per-thread nesting count and a per-thread critical section saved state set when entering a critical section while at nesting level 0 and restored when exiting to nesting level 0. This moves the saved state out of spin mutexes so that interlocking spin mutexes works properly. - Most low-level MD code that used critical_enter/exit now use cpu_critical_enter/exit. MI code such as device drivers and spin mutexes use the MI wrappers. Note that since the MI wrappers store the state in the current thread, they do not have any return values or arguments. - mtx_intr_enable() is replaced with a constant CRITICAL_FORK which is assigned to curthread->td_savecrit during fork_exit(). Tested on: i386, alpha
* Remove unneeded sys/mutex.h includes.jhb2001-10-191-1/+0
|
* Make sure that all resource allocation is handled in the pcib device, notdfr2001-05-231-6/+0
| | | | | | | | the chipset. This is already how the multi-hose systems handle resource allocation and it fixes a bug where dense and bwx memory allocations were not handled properly. Reviewed by: gallatin
* fix alpha-MD compile errors after the vm_mtx commitgallatin2001-05-201-0/+1
|
* Switch from save/disable/restore_intr() to critical_enter/exit().jhb2001-03-281-7/+8
|
* Use the MI ithread helper functions in the alpha hardware interrupt code.jhb2001-02-091-2/+1
|
* fix isa DMA on pyxis based machines:gallatin2000-11-211-7/+8
| | | | | | | | | | | | - move the call to cia_init_sgmap() to after we've determined if we're a pyxis - convert needed splhigh() in cia_sgmap_invalidate_pyxis() to disable_intr() Previously, any isa DMA on a pyxis based machine would cause a panic in cia_sgmap_invalidate_pyxis() because the pyxis workaround was never setup. - while i'm at it, convert needed splhigh() in cia_swiz_set_hae_mem to disable_intr()
* Pass in the new-bus flags to alpha_setup_intr().jhb2000-11-011-1/+1
|
* - Heavyweight interrupt threads on the alpha for device I/O interrupts.jhb2000-10-051-5/+25
| | | | | | | | | | | - Make softinterrupts (SWI's) almost completely MI, and divorce them completely from the x86 hardware interrupt code. - The ihandlers array is now gone. Instead, there is a MI shandlers array that just contains SWI handlers. - Most of the former machine/ipl.h files have moved to a new sys/ipl.h. - Stub out all the spl*() functions on all architectures. Submitted by: dfr
* Well, this works for me and I can now boot my PC164 again.mjacob2000-09-111-34/+41
| | | | Nobody said it broke their system.
* A quick fix to get around a problem (described below) with cia basedgallatin2000-09-021-0/+2
| | | | | | | | | | | | | | | | | 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.
* * Completely rewrite the alpha busspace to hide the implementation fromdfr2000-08-281-509/+32
| | | | | | | | | | | | 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.
* Remove the 'ivars' arguement to device_add_child() andmdodd1999-12-031-1/+1
| | | | | | | | | | | | | | | | 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
* useracc() the prequel:phk1999-10-291-1/+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.
* $Id$ -> $FreeBSD$peter1999-08-281-1/+1
|
* Some very minor changes to the ISA dma code.dfr1999-08-251-3/+3
|
* 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
* Get prototype for isa_init_intr().peter1999-07-011-1/+2
|
* * 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 multiple PCI "hoses" used on various alpha platforms.gallatin1999-05-201-13/+13
| | | | | | | | | 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 )
* Move the declaration of the interrupt type from the driver structuredfr1999-05-081-4/+4
| | | | to the BUS_SETUP_INTR call.
* Bring the 'new-bus' to the i386. This extensively changes the way thepeter1999-04-161-6/+9
| | | | | | | | | | | | | | | | | | 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
|
* Examine all occurrences of sprintf(), strcat(), and str[n]cpy()archie1998-12-041-3/+3
| | | | | | | | | | | | | | 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>
* Enable BWX i/o access. I disabled it by mistake with the last commit.dfr1998-12-021-2/+2
| | | | Pointed out by: Andrew Gallatin <gallatin@cs.duke.edu>
* Add support for 'vmstat -i'.dfr1998-11-281-4/+6
| | | | | Submitted by: Hidetoshi Shimokawa <simokawa@sat.t.u-tokyo.ac.jp> Obtained from: NetBSD
* * Add hooks to allow the X server to access I/O ports and memory.dfr1998-11-151-39/+104
| | | | | | | | | * Update drivers to the latest version of the bus interface. The ISA drivers' use of the new resource api is minimal. Garrett has some much cleaner drivers which should be more easily shared between i386 and alpha. This has only been tested on cia based machines. It should work on lca and apecs but I might have broken something.
* Add functions for accessing dense and bwx memory for pci devices. Thesedfr1998-10-061-1/+23
| | | | | | | routines are necessary to allow the use of certain types of hardware on the alpha, particularly a Myrinet card. Submitted by: Andrew Gallatin <gallatin@cs.duke.edu>
* Workaround some EB164 wierdness.dfr1998-09-161-13/+75
| | | | Obtained from: NetBSD
* I managed to break sparse configuration accesses with my last commit.dfr1998-08-131-3/+3
| | | | Pointed out by: Andrew Gallatin <gallatin@cs.duke.edu>
* Add code from NetBSD to print CIA capabilities and try to detect Pyxis bugs.dfr1998-08-111-2/+141
|
* Lots of changes, including:dfr1998-08-101-43/+18
| | | | | | | | | | * Support for AlphaStation 200, 250, 255, 400 * Untested support for UDB, Multia, AXPpci33 (Noname) * Support for Personal Workstation 433a/433au, 500a/500au, 600a/600au (Miata) * Some minor fixes and improvements to interrupt handling. Submitted by: Andrew Gallatin <gallatin@cs.duke.edu> (AS200, Miata) Obtained from: NetBSD (some code for AS200, Miata, Noname)
* Add support for type1 pci configuration cycles for cia (not pyxis yet).dfr1998-08-071-26/+61
| | | | Submitted by: Andrew Gallatin <gallatin@cs.duke.edu>
* Only perform byte/word accesses in the correct EV56 memory space.dfr1998-07-311-78/+69
| | | | | | Sparse macros have moved to <machine/swiz.h>. Fix sparse memory access so that it actually works as intended. Tidy up sparse configuration access slightly.
* Merge KN20AA support from Andrew Gallatin.dfr1998-07-221-31/+320
| | | | | Add support for device memory access. Add support for ISA irqs.
* Implement CIA interrupts.dfr1998-07-121-1/+32
| | | | Obtained from: SRM console magic from NetBSD
* Add basic support for 2117x pci chipsets. Currently only pyxis (21174)dfr1998-07-051-0/+246
is supported. Older chipsets will be easy to support later but right now, I just want to boot my 164LX scratch machine :-).
OpenPOWER on IntegriCloud