Commit Graph

313 Commits

Author SHA1 Message Date
cgd 51f119d429 clean up NetBSD RCS ID strings 1997-04-07 01:59:51 +00:00
cgd a145382bd2 clean up some #ifdefs 1997-04-06 23:32:18 +00:00
cgd 4f210d58be patch from Matt Jacob to enable secondary PCI bus support 1997-03-15 03:15:20 +00:00
cgd 80bf6049dd fix from Matt Jacob: configuration accesses need PCI Byte enables just
like sparse memory accesses do.
1997-03-13 23:59:36 +00:00
cgd 8c689e6477 Copyright notice consistency, per Matthew Jacob. 1997-03-12 21:09:43 +00:00
cgd ffba332bb5 AlphaServer 8200 & 8400 support, including CPU specific details, TurboLaser
system bus support, and KFTxx support.  From Matthew Jacob, NASA Ames
Research Center.
1997-03-12 19:19:54 +00:00
cgd 0a500fffa0 update to allow PCI bus interfaces that wish to allocate static
extent storage per interface unit (e.g. dwlpx, where there can be multiple
units per machine) to do so.  Inspired by discussion with and changes from
Matt Jacob.
1997-03-12 05:24:23 +00:00
cgd 8efa66858c fix problem compiling if neither PCI VGA nor TGA frame buffers were
configured.  Pointed out by Matt Jacob.
1997-03-08 19:25:49 +00:00
cgd e9abc8540f remove all traces of __BROKEN_INDIRECT_CONFIG (except in shared drivers) 1996-12-08 00:22:08 +00:00
cgd 8b6a32d1c1 update these so they compile whether or not __BROKEN_INDIRECT_CONFIG
is defined.
1996-12-05 01:39:27 +00:00
cgd 30b636bd09 implement bus_space_copy_*(). 1996-12-02 22:19:32 +00:00
cgd 256cf234a1 move barrier operation definition closer to the top of the bus space ops
structure.  In the implementations, allow the barrier op to be inlined.
1996-12-02 07:07:18 +00:00
cgd 54ba942f79 implement bus_space_set_multi_* and bus_space_set_region_* operations. 1996-12-02 06:46:49 +00:00
cgd e6bafb00d6 declare the single-datum read and write methods as inline, so that
the multi and region methods can inline them.
1996-12-02 06:12:39 +00:00
cgd 366a586e85 if we're going to do a real match (we are), ahve to special-case console 1996-11-27 01:20:26 +00:00
cgd 97927bdd99 update for new extent management code. Most importantly, we can't call
the chipset space init functions multiple times, since that would clobber
extent allocations made between the two calls.  Also, deal with the
fact that the APECS and LCA no longer shared common chipset functions.
1996-11-25 03:56:48 +00:00
cgd 77baf28d70 update for new extent management code. Most importantly, we can't call
the chipset space init functions multiple times, since that would clobber
extent allocations made between the two calls.
1996-11-25 03:55:46 +00:00
cgd 7a1799b561 update for new extent management code, and for apecs/lca space access fn split 1996-11-25 03:49:36 +00:00
cgd 608a9f3065 update for new extent management code 1996-11-25 03:49:11 +00:00
cgd 6d7b2d82a7 make eb164 interrupts actually work. 1996-11-25 03:47:05 +00:00
cgd 8b50c9af38 reimplement, so that it works with the new extent mapping code. 1996-11-25 03:46:07 +00:00
cgd fe6262c3c0 split the APECS and LCA bus memory and I/O functions. Most of them still do
the same things, but the extent maps have to be managed differently,
since the two chipsets provide different memory and I/O region mapping
possibilities.
1996-11-25 03:42:09 +00:00
cgd 1a45dbd671 update these to set up and use extents to map i/o space, and sparse and
dense memory.
1996-11-25 03:37:23 +00:00
cgd 8c007e0e48 use set_pci_isa_bridge_callback() to delay ISA/EISA bus attachment until
after PCI tree has been completely probed.
1996-11-25 03:15:24 +00:00
cgd abf0b7c010 deal with the fact that apparently-common revisions of EB164 firmware
don't machine check when a PCI Master Abort is signalled.  This can
happen, for instance, when configuration space for a device that isn't
present is examined.  When this is detected, act like we normally would
when machine checks are posted while examining nonexistant devices.
1996-11-23 06:46:50 +00:00
cgd ff523f9080 fix HAE_MEM_REG3_START definition (shift was incorrect). Add CIA_CSR_CIA_ERR
register definition.  (should define bits in CIA_CSR_CIA_ERR, but haven't
done that yet.)
1996-11-23 06:42:55 +00:00
cgd 574633aea2 add definitions for LCA_IOC_HAE contents. Add a REGVAL64 macro, like
REGVAL but good for 64-bit chipset registers.
1996-11-23 06:41:00 +00:00
cgd 335c1af878 move probe and setup code into common functions. always probe (i.e.
even if PCI and the IDs are right), just for sanity, before declaring
success.  Split the single 0x3b0 -> 0x3df allocation into three seperate
ones: 0x3b0 -> 0x3bc (leaving the 4 ports available for lpt),
0x3c0 -> 0x3cf, and 0x3d0 -> 0x3df.  The former chunk has to be split
off if the lpt can exist there, and it's sort-of pretty to have each
group (based on second hex digit) have its own handle.
1996-11-23 06:06:43 +00:00
cgd 7b52699cfd catch up with wscons frame buffer attachment, mmap, and ioctl
interface changes.
1996-11-19 05:23:07 +00:00
cgd f3415af098 update for VGA-related changes 1996-11-19 04:57:32 +00:00
cgd bf371611ab fix spelling error 1996-11-19 04:49:21 +00:00
cgd 2c43c05bc2 replace old PCI VGA driver with a common VGA back-end and ISA and PCI
front-ends.  Unfortunately, because of the way ISA and PCI are currently
probed, if you have a PCI VGA board in your machine and both drivers
in your kernel, the ISA VGA driver may accidentally match the PCI board.
For now, the only solution to this is to not put both drivers in
the GENERIC kernels.
1996-11-19 04:38:32 +00:00
cgd e35cd5615f implement interrupt enable/disable and mapping as described in
the Digital Semiconductor AlphaPC 164 Motherboard Technical Reference
Manual.  This may not work, but it's the best i can do with the
documentation I have.
1996-11-17 02:30:25 +00:00
cgd ccc668e0d7 use the new common chained-interrupt support code. 1996-11-17 02:05:26 +00:00
cgd 6c9cb4aa9b compile cleanly with:
-Werror -Wall -Wstrict-prototypes -Wmissing-prototypes -Wcast-qual
1996-11-13 21:13:04 +00:00
cgd 8ffccdfae0 preliminary support for the EB164. The EB164 is more or less a 'normal'
21164 + 21172 box, with Yet Another Way of doing interrupts.  The
interrupt mapping and handling code hasn't been written yet, and none
of this code has been tested.  (Checkpoint of work in progress.)
1996-11-11 21:08:10 +00:00
cgd f8ab7cfbcd clean up some spacing in switch statements 1996-11-11 21:02:32 +00:00
cgd 1b03f1bca7 update for new bus.h macros. bus_io_* and bus_mem_* integrated into
single bus_space_* framework.  Unfortunately, bus_space_{read,write}_*
operations still imply barriers.  That will change soon.
1996-10-23 04:12:13 +00:00
christos 8d9699acda backout previous kprintf change 1996-10-13 02:59:55 +00:00
christos 946833855f printf -> kprintf, sprintf -> ksprintf 1996-10-10 23:51:21 +00:00
christos a60beecedb printf -> kprintf, sprintf -> ksprintf 1996-10-10 23:44:49 +00:00
cgd 2a73ef60b7 change cfprint_t type definition to take a const char *, rather than
a char *, because that's what was really intended, and because
if the print function modifies the string, various things could become
unhappy (so the string should _not_ be modified).
1996-08-27 21:53:46 +00:00
cgd 2c47809239 include <sys/systm.h> for printf prototype 1996-08-27 16:28:08 +00:00
cgd 15f9c59baf check in the code used to build the kernel that Andrew Gallatin used to
figure out the correct IRQ for the ethernet on the AlphaStation 500.
That code is enabled via KN20AA_BOGUS_IRQ_FROB (but hopefully won't be
needed any time soon, and won't link w/o slight changes to other code).
Basically, when establishing an interrupt that we don't know what to
do with, prompt the user for what interrupt line to enable.  If you
get stray interrupts when you try to use the device (but not before),
then you've got the right line.
1996-08-19 04:28:25 +00:00
cgd 3c7eaa04e2 fix typo in comment 1996-08-19 04:19:01 +00:00
cgd b4bfcf063f 21040 ethernet chip on AlphaStation 500 lives in slot 6 (a slot not
found on the AlphaStation 600), and interrupts on interrupt line 13.
Thanks to Andrew Gallatin for booting a test kernel 32 times (trying
each interrupt line, looking for the right one) to find this.
1996-08-19 04:14:58 +00:00
cgd e295ad51df clean up stray interrupt handling a bit. 1996-08-15 22:17:44 +00:00
cgd b3703a8fcd oops; fix bogon in last. 1996-08-14 05:47:39 +00:00
cgd 1f675e847d say 'stray kn20aa irq' rather than 'stray PCI irq'; former is more correct. 1996-08-14 05:45:52 +00:00
cgd a96b24415d fix inadvertent reordering of switch which cases by slot number but
is ordered by interrupt number.
1996-08-14 05:44:31 +00:00
cgd 440a942944 fix bogus returns from dec_kn20aa_intr_map(), and slightly simplify interrupt
mapping code.  (instead of using a "slot" and multiplying by 4 and adding the
pin number later to get the IRQ, just use base IRQ value and add the pin
number.)
1996-08-07 04:33:21 +00:00
cgd efec732f4d fix a typo, add a function kn20aa_disable_intr() to disable a given
kn20aa interrupt line.
1996-08-07 04:22:40 +00:00
cgd f72a611ccc (1) Clean up interrupt handling slightly.
(2)     Include more headers to bring necessary prototypes into scope.
1996-07-14 04:08:56 +00:00
cgd 644f74f9f2 (1) Clean up interrupt handling slightly. 1996-07-14 04:08:41 +00:00
cgd c915721a81 (1) Include more headers to bring necessary prototypes into scope. 1996-07-14 04:08:21 +00:00
cgd 7a83b5d468 some cleanup for -Wall 1996-07-11 03:30:11 +00:00
cgd 0cefc7ef74 clean and update for new defintions, prototypes, etc. 1996-07-09 00:53:48 +00:00
cgd 386aeb320f clean up copyright notices 1996-06-13 18:31:49 +00:00
cgd 2d9140fb20 add definitions and code to support use of multiple I/O and _dense_
memory regions.
1996-06-11 21:25:25 +00:00
cgd d714189d53 implement bus_mem_subregion() and bus_io_subregion(). 1996-06-11 21:16:21 +00:00
cgd 9aa03f4dd9 update for changed definitions in ciareg.h 1996-06-10 00:04:53 +00:00
cgd 2465bd00e5 store HAE_MEM and HAE_IO register contents in the cia configuration
structure, and add prototypes for the bus_{mem,io}_init() functions.
1996-06-10 00:03:59 +00:00
cgd 55cbf94f22 read value of HAE_MEM and HAE_IO, so that the bus_* functions can
do window recognition correctly.
1996-06-10 00:02:31 +00:00
cgd 9198817ce3 update for new memory window handling in pcs_bus_mem_common.c. 1996-06-10 00:01:09 +00:00
cgd c247b24843 add definitions used to figure out how PCI/EISA/ISA memory regions are
mapped.
1996-06-09 23:59:38 +00:00
cgd df2ba1e245 add support for mapping multiple memory windows. This is necessary
for mapping ISA/EISA 'hole' memory on the AlphaStation 600.
1996-06-09 23:57:45 +00:00
cgd 8df74fa62a wrap __STRING() in a #define so that its argument, which must be
expanded by the preprocessor, will be.  Problem pointed out by Matt
Thomas.
1996-06-09 23:49:24 +00:00
cgd ebe3a58f01 pull down changes from NetBSD 1.2 release branch:
>Update for present reality (function names), clean up a bit (printfs,
>"panic: foo XXX"), and fix a couple of printf format specified bugs
>(which were normally #if 0'd out).  Inspired by Multia/UDB support
>changes sent by Matt Thomas.
and:
>changes from Matt Thomas so that the Multia/UDB can attach its
>'com' interrupts, cleaned up some.  Basically: if sharing type of
>new interrupt is different than what the hardware is currently set up
>for (e.g. requesting edge-triggered and the hardware is set up by
>the PROM for level triggered) and there are no interrupt handlers on
>that line already, warn about it and use the hardware type that the
>line was already set for (to avoid making the console blow up on
>reboot).  If same circumstances but there is already a handler, panic
>as before.
1996-06-05 22:52:34 +00:00
cgd 37ec86f0cc avoid lots of upper-case letters in interrupt names. prettier that way. 1996-06-05 03:38:02 +00:00
cgd c6dd609e7f gross hack to get around the fact that there are currently devices with
common back-ends that live on multiple very-different busses (e.g. PCI and
TC), which need bus-specific DMA mapping support.  As a nice side effect,
this will allow the especially nasty (vtophys(va) | 0x40000000) expressions
to go away in favor of less nasty bus-specific function calls.
1996-06-03 20:18:48 +00:00
cgd 59cdf4331e clean up some, and use new sioreg.h 1996-04-23 14:15:55 +00:00
cgd 8253c155fe hanges from Trevor Mendez <tmendez@bbn.com> to use new sioreg.h
header.  Also, I moved the LCA_SIO_DEVICE definition higher up in the
file.
1996-04-23 14:15:28 +00:00
cgd 84da7b5f97 Intel 82378 System I/O (SIO) Chip register defintions, cleaned up a
bit from a version supplied by Trevor Mendez <tmendez@bbn.com>.
1996-04-23 14:10:53 +00:00
cgd e9bbf69ff6 Changes from Trevor Mendez <tmendez@bbn.com> to add definitions of a
couple of registers useful for debugging.
1996-04-23 14:03:46 +00:00
cgd fea5e372e6 Corrections from hardware manual, from Trevor Mendez <tmendez@bbn.com>.
Adds comments and sets IOC_CONF correctly (it's write-only!).
1996-04-23 14:00:53 +00:00
cgd 7458364702 Implement the I/O read/write-multiple functions for chipsets
that use this file (APECS, LCA, and CIA).
1996-04-18 05:53:04 +00:00
cgd 0b0a8bfe15 fix bug in pcivga_erasecols() that would cause garbage to be spit out.
other minor style cleanup.
1996-04-17 21:49:58 +00:00
cgd 21ac0b2a36 update for new ISA/EISA/PCI/'bus' interfaces. Untested 1996-04-13 00:24:30 +00:00
cgd 161623e54e add (untested) support for EISA busses hanging off of PCEBs. 1996-04-13 00:23:34 +00:00
cgd f32c94e82c note that these IRQs are ISA IRQs 1996-04-13 00:22:58 +00:00
cgd c0b2b5595c Replace with completely new version derived from APECS code. No serious
bugs to fix (that i know of), just doing it that way was easiest.
1996-04-12 23:37:10 +00:00
cgd 56a6e33bb6 "Do over." Throw the old file away, replace it with a version hacked
from the current apecs_pci.c.  This new version hopefully works for
the same sets of devices that that previous one did, and hopefully
will work for multi-function devices and for secondary PCI busses as
well.  (looking at the code, there was no way the old one could have!)
1996-04-12 23:27:05 +00:00
cgd 576c769331 clean up copyrights and RCS IDs 1996-04-12 06:07:05 +00:00
cgd eb4de32615 Set up and pass isa chipset tag to ISA bus, when attaching.
Should do the same for EISA, when that support is finished.
1996-04-12 05:43:02 +00:00
cgd 98c183ff49 remove (hack) version of isa_intr_establish() 1996-04-12 05:41:50 +00:00
cgd 931ec3829c partially update for new ISA/EISA/PCI and 'bus' interfaces. not yet
complete, or tested.
1996-04-12 04:40:49 +00:00
cgd c6af4505f1 implement 'bus' functions for the CIA chipset. 1996-04-12 04:40:01 +00:00
cgd 647469cfbc update for new ISA/EISA/PCI and 'bus' interfaces. 1996-04-12 04:38:33 +00:00
cgd 125eefcd67 implement APECS and LCA 'bus' functions, and share them between the
two chipsets, since they're the same.
1996-04-12 04:36:12 +00:00
cgd 04645aa7ad chipset 'bus' functions that seem to be common to all host bus
adapters that exist in single-CPU systems.  APECS, CIA, and LCA
all use this, but with different #defines.
1996-04-12 04:34:59 +00:00
cgd ba7bbf8c30 update for new PCI, etc., interfaces 1996-04-12 04:33:06 +00:00
cgd be813334f8 (mostly) update for new PCI and 'bus' interfaces. 1996-04-12 04:32:10 +00:00
cgd b26a595361 update for new PCI, etc., interfaces. 1996-04-12 04:31:48 +00:00
cgd caa9d61d58 add indirect register definitions. 1996-04-12 04:31:08 +00:00
cgd 7b08107723 update for new PCI code, etc. As yet, untested. 1996-04-12 04:30:11 +00:00
cgd f357f1b38a partially update for new PCI & bus macros. update to deal with new
console glue.  Split out RAMDAC-specific code into seperate files.
1996-04-12 02:13:09 +00:00
cgd a52d1c3efe clean up for new ISA and 'bus' code, etc. 1996-04-12 02:11:22 +00:00
cgd f0a062ba62 replaced by files in ../wscons 1996-04-12 02:02:06 +00:00
cgd 89579980e6 this has moved to ../include 1996-04-12 02:01:51 +00:00
thorpej 08607bc611 New device attachment scheme:
- split softc size and match/attach out from cfdriver into
	  a new struct cfattach.

	- new "attach" directive for files.*.  May specify the name of
	  the cfattach structure, so that devices may be easily attached
	  to parents with different autoconfiguration semantics.
1996-03-17 01:03:02 +00:00
mycroft 3da4b2a160 The IST_* and IPL_* constants are not bus-specific; don't treat them as such.
Change splimp -> splnet in Ethernet, ARCnet, and FDDI drivers.
1995-12-24 02:29:35 +00:00
cgd deb4082f80 wholesale update from my NetBSD/Alpha source tree. Includes:
Support for AXPpci CPUs,
	Support for AlphaStation 600 CPUs,
	new boot block structure, which requires an 'installboot'
	    program and works a lot like the NetBSD/sparc boot blocks.
1995-11-23 02:33:17 +00:00
cgd 60d53ca3d9 oops; trim some bogus 1994's from copyrights 1995-08-03 01:12:15 +00:00
cgd 0e899183c9 MB -> wbflush 1995-08-03 00:46:52 +00:00
cgd c296ddcd85 move some of the most important configuration code into a seperate
function, so that it can be called from early bus config code.
1995-08-03 00:44:57 +00:00
cgd 99dd0b8fc8 i/o mapping, kill some trash, map cacheable mem in dense PCI mem space 1995-08-03 00:42:25 +00:00
cgd 14388e344a Brooktree bt485 register definitions. should be MI, but didn't want
to shove my names down others' throats (yet).
1995-08-03 00:40:49 +00:00
cgd 132ad46ef5 "Workstation Console" glue code. Badly "needs chainsawed."
Should be better integrated into autoconfig.  Also, interface should
be designed rather than cobbled together...  Nasty, but it Works.
needs things like ability to pass ioctl()s down to components, ability
to mmap() things, etc.
1995-08-03 00:39:58 +00:00
cgd 9a0323c873 PCI VGA support. should be MI, but not yet 1995-08-03 00:35:55 +00:00
cgd 5413c73bec support for DEC 21030 (TGA) boards -- at this time, only the ZLXp-E1 works 1995-08-03 00:34:25 +00:00
cgd beeaf64fd6 i/o map function dispatch, console picker function 1995-08-03 00:33:58 +00:00
cgd 721de847a4 need i/o map function pointer 1995-08-03 00:33:29 +00:00
cgd 549f126f4b ISA and PCI support for DEC AlphaStations 1995-06-28 01:24:50 +00:00