Commit Graph

173 Commits

Author SHA1 Message Date
cgd cc93b2c4eb pass memory- and i/o-enabled flags down via the PCI bus and device attach
arguments, so that a device can tell if its memory and I/O spaces are
enabled.  The flags are cleared, depending on the contents of devices CSR
registers, in the machine-independent PCI bus code.
1997-04-10 23:12:16 +00:00
cgd 519551a681 include RCS IDs for assembler files, disabled with NO_KERNEL_RCSIDS 1997-04-08 00:19:01 +00:00
cgd fa0c4d6cb1 clean up options.h inclusion slightly 1997-04-07 23:56:39 +00:00
cgd 90789b53dd by default, provide RCS IDs for NetBSD/alpha kernel files in kernel binaries.
This can be disabled (to save a bit of space) with the NO_KERNEL_RCSIDS
options, which is present but commented out in the ALPHA config file.
In ELF-format kernels, these strings are present in the kernel binary but
are not loaded into memory.  (In ECOFF-format kernels, there's no easy way
to keep them from being loaded, so they _are_ loaded into memory.)
1997-04-07 23:39:37 +00:00
cgd 80c27e8c49 include machine/options.h 1997-04-07 06:36:24 +00:00
cgd 21598de043 use machine/conf.h instead of sys/conf.h and/or machine/cpuconf.h 1997-04-07 06:09:00 +00:00
cgd b2f768130d include machine/options.h 1997-04-07 05:46:48 +00:00
cgd 6093a85bde clean up eb164 #ifdefs 1997-04-07 05:40:10 +00:00
cgd 8c56b1a0c9 clean up NetBSD RCS ID strings 1997-04-07 05:19:01 +00:00
cgd a60b90caa9 clean up NetBSD RCS ID strings, include machine/options.h 1997-04-07 02:01:16 +00:00
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