Commit Graph

184 Commits

Author SHA1 Message Date
thorpej
8e2e0fdc91 Don't print the hose number here; that's done in kftprint(). 1997-06-08 07:03:18 +00:00
thorpej
46b89d7739 Pull thorpej-bus-dma branch into mainline. 1997-06-06 23:54:24 +00:00
cgd
079e0c6bff make REGVAL macros use volatile pointers 1997-06-03 21:54:02 +00:00
thorpej
4ae176cb0a Ooops! Not meant for the trunk; these need to be added to the branch! 1997-06-03 07:01:58 +00:00
thorpej
36e7d039c0 Add "typedep" code to deal with both the 32-bit and 64-bit PTE formats
found on Alpha workstation and server PCI bridge chipsets.
1997-06-03 07:00:20 +00:00
cgd
e4f0b64254 Adjust gcc -Wuninitialized warning initializers (or add them) so that
compliation without DEBUG and/or DIAGNOSTIC happens without errors.
Note that all such initializations in the Alpha port are marked with "XXX
gcc -Wuninitialized".  As far as I'm concerned, the one or two times
-Wuninitialized has saved me from problems are worth the (very minor) cost
involved with the initializations, esp. if it's noted why the
initializations are done.  This was prompted by PR#3690, from Ted Lemon.
1997-05-31 05:46:03 +00:00
mjacob
ac75d3f4df clarify a comment slightly. 1997-04-16 22:20:52 +00:00
cgd
c16b14abf3 use pci_mapreg_info rather than pci_mem_find 1997-04-13 22:09:32 +00:00
cgd
7030e14ffa provide a way for chipsets which can have multiple instances to force
a seperate chipset structure to be allocated for each.
1997-04-11 00:57:40 +00:00
cgd
b995d6393d add eb64+ support, enabled with options DEC_EB64PLUS 1997-04-10 23:24:27 +00:00
cgd
9dc7578cb5 move and split pcs_bus_{mem,io}_common.c, so that:
(1) object code can be shared (where the hardware makes that possible), and
(2) so that the file names better describe the systems which use them.  (the
    pci_swiz* files are for machines whose PCI interfaces require address
    "swizzling."  Later, there will be probably be other sets, e.g. pci_bwx*
    for machines whose chipsets can easily deal with the Alpha BWX extensions
    when doing device accesses.)
1997-04-10 23:21:29 +00:00
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