Commit Graph

240 Commits

Author SHA1 Message Date
ross
6e6f663204 Rewrite of interrupt dispatch logic. Add ctags(1) keys for *a12*.h files. 1998-03-02 07:03:20 +00:00
ross
13aeff8570 Fix attachment message. 1998-03-02 06:59:38 +00:00
ross
1ada245647 Support attachment of xb and a12dc, define most of the remaining
core logic register fields.
1998-03-02 06:56:16 +00:00
ross
469f9b6126 Clean up attachment code and prototypes. 1998-03-02 06:53:34 +00:00
thorpej
58509e699f Add support for UVM. 1998-02-24 07:38:01 +00:00
thorpej
314f40f8d8 We can't count on the CIA revision register telling us if we're a 21171
or 21172, so make the chip/revsion output a little more sane.
1998-02-12 20:43:45 +00:00
thorpej
612aea038c Use the common _bus_dmamap_sync() as the _dmamap_sync method in the
bus_dma_tag_t.
1998-02-04 07:37:28 +00:00
ross
6270ed1711 Add the A12 fast ethernet controller, an if_de.c hacked (prior to
bus_dma's appearance in the tree) to support sram bounce buffers.
When a busified if_de.c appears, this module can join awd.c at the
end of that long walk on a short pier.
1998-01-31 01:43:40 +00:00
ross
12f93343cd Add basic platform support for NetBSD on the Avalon A12. I'm running this
CVS commit on one right now...
1998-01-29 21:42:50 +00:00
thorpej
8df306036a Initialize s/g DMA registers in the same order as the CIA chipset's:
(1) window base
	(2) window mask
	(3) translation base
1998-01-17 22:46:55 +00:00
thorpej
3366b987d0 Put SGMAP-related stuff in the DMA map structure directly, rather than
indirecting through a pointer.
1998-01-17 21:53:52 +00:00
thorpej
63db8935a6 Fix initialization of DMA window 0:
- Make sure the page table is aligned to at least 32k.
- Don't consider the MEMCS signal when checking for a window hit.
1998-01-17 03:43:59 +00:00
thorpej
9554b5a243 Update for "minptalign" argument to alpha_sgmap_init(). 1998-01-17 03:40:32 +00:00
thorpej
399f3639cf Don't assume that we'll be using direct-mapped DMA for PCI. 1998-01-17 03:39:51 +00:00
thorpej
5419debcb7 Adjust for config changes. 1998-01-12 10:21:02 +00:00
thorpej
023044a749 Clean up printing of chipset revision/capabilities. 1997-10-27 01:08:42 +00:00
thorpej
611012d836 Make the copy_region methods do overlapping copies properly. Fixes
port-alpha/4216 (Chris Demetriou).
1997-10-25 01:21:57 +00:00
cjs
c44bfc9eae Make compile without DIAGNOSTIC set. 1997-10-14 06:22:02 +00:00
thorpej
0c2efd7025 Add a "scrollskip" member to wscons_emulfuncs (XXX even though it's not
a function) which specifies how many lines will be skipped when scrolling
up when the bottom of the screen is reached.  Dumb framebuffers skip 10
lines (as before) because the copies are s ... l ... o ... w, but it's
silly to skip 10 lines on VGA, since the copies are much faster, so we
only skip one in that case.
1997-09-25 01:31:53 +00:00
thorpej
15e10104d5 Define the BWX-capable regions of the CIA chipset's address space (mem,
i/o, pci config space mode 0, pci config space mode 1) and the CIA
REV and CNFG CSRs.
1997-09-17 01:35:34 +00:00
thorpej
879c4c5cf4 If the CIA revision is >= 2, read the CIA configuration register, and
remember its contents.  Print out a bit of information about the chip,
including whether or not it supports the EV56 BWX instructions.
1997-09-17 01:34:18 +00:00
thorpej
37b8edbeac In addition to MAS_ABT, check TAR_ABT when doing configuration space
reads.  This is necessary because of newer AlphaStation firmware doing
the Wrong Thing with target aborts behind PCI-PCI bridges, much like they
do the Wrong Thing with master aborts.  Reported by Matthias Drochner.
1997-09-15 23:31:15 +00:00
thorpej
12f6c5aba1 Make sure to clear MAS_ABT if we received one. 1997-09-15 23:01:29 +00:00
thorpej
3c3c6a3b31 Use the symbolic name for "received master abort". 1997-09-15 22:35:54 +00:00
thorpej
8ff22715e8 Define bits in the CIA_ERR register. 1997-09-15 22:34:38 +00:00
thorpej
f784e8dc15 Apparently, new AlphaStation 500/600 firmware has the same problem with
PCI master aborts as eb164 firmware, so use the same workaround mechanism
on all system types (clear error register's master abort bit, and check
it after accessing configuration space), not just eb164's.

This also fixes a bug on eb164's - when making the Alpha port compile
again, I made an error that caused this to not be used on eb164 systems,
either.  Thanks to Matt Jacob for pointing out this goof.
1997-09-13 05:58:07 +00:00
thorpej
ed2ec4869c Update for Chris Demetriou's changes made to the bus.h interface:
- bus_space_copy -> bus_space_copy_region (for consistency)
- "cacheable" argument becomes a "flags" argument instead, with
  BUS_SPACE_MAP_CACHEABLE and BUS_SPACE_MAP_LINEAR flags currently
  defined.
1997-09-06 05:44:07 +00:00
thorpej
1aa35e94d4 s/BUS_BARRIER/BUS_SPACE_BARRIER/g 1997-09-06 05:21:14 +00:00
thorpej
2ecccdc05f Define Status 0 and Status 1 registers. 1997-09-05 02:14:31 +00:00
thorpej
f203067ae3 Adjust for changes to bus space tag initialization. 1997-09-02 20:10:28 +00:00
thorpej
a71cecbec3 Fix a typo. 1997-09-02 20:08:02 +00:00
thorpej
991f4ebc72 cia_bus_ -> cia_swiz_bus_ 1997-09-02 20:07:20 +00:00
thorpej
80e3db443f Apply a change made to other PCI chipsets:
don't expect/provide pci_decompose_tag to be a MI, public function.  It
wasn't intended to be to begin with, and uses of it (e.g. the one in the
'de' driver) are quite likely to be incorrect.
1997-09-02 20:05:28 +00:00
thorpej
3735c7d1d7 Fix a think-o. 1997-09-02 19:39:15 +00:00
thorpej
529d790161 Pull in DEC_AXPPCI_33 option. 1997-09-02 13:25:36 +00:00
thorpej
cb32cf1ece Pull in DEC_EB164 and DEC_KN20AA options. 1997-09-02 13:24:48 +00:00
thorpej
b57ee951d0 Pull in DEC_2100_A50 and DEC_EB64PLUS options. 1997-09-02 13:23:56 +00:00
thorpej
693b3e7262 Nuke the idea of <machine/options.h>. It completely defeats the purpose
of fine-grain option dependencies.
1997-09-02 13:17:47 +00:00
thorpej
e234ed15b6 Fix oversight in a previous commit. 1997-09-02 12:54:27 +00:00
thorpej
375ad27ed8 - Garbage-collect all DMA-related initialization, calling a separate
*_dma_init() function instead.
- Pass the appropriate bus dma tag to children.
1997-09-02 12:51:20 +00:00
thorpej
3ac7ac6e63 Garbage-collect. 1997-09-02 12:43:22 +00:00
thorpej
aa7a2876e6 Treat bus space tags more like pci chipset tags and bus dma tags: allocate
them statically within a chipset's state structure, and pass them to
the *_bus_{io,mem}_init() functions.
1997-09-02 12:40:18 +00:00
thorpej
fd01db8b74 Use more complete #include directives when pulling in the chipdep
functions.
1997-09-02 11:09:51 +00:00
thorpej
9199b6645b Clean up RCS IDs. 1997-09-02 10:56:52 +00:00
thorpej
d450130943 Adjust for new names for the PCI i/o and mem swizzle-style access
function files.
1997-09-02 10:43:27 +00:00
thorpej
8f286ca7f3 Renamed to pci_swiz_bus_{io,mem}_chipdep.c by repository copy. 1997-09-02 10:39:15 +00:00
thorpej
8998fa1198 Revive these files from the Attic. 1997-09-02 10:26:55 +00:00
mjacob
23d0cae1eb It helps streaming performance substantially to enable bursts and more up hose
packets. It's not clear whether latency will be affected much. It could be.
However, for the time being, getting full rates out of HIPPI or SCSI are what
interests us at NASA, so we'll hew to this bias.
1997-08-16 01:18:30 +00:00
mjacob
92995a3a9f a minor bit of cleanup 1997-08-16 01:16:33 +00:00
mjacob
ecd1b40ab3 Add some PCIA_CTL defines. 1997-08-16 01:14:32 +00:00
cgd
0bc9a09170 cia_bus_* -> cia_swiz_bus_* 1997-08-12 00:58:01 +00:00
cgd
cfe8f450c7 update these to use the new 'correct' names for functions/constants
in bus.h.
1997-07-23 08:05:36 +00:00
cgd
429a941288 don't expect/provide pci_decompose_tag to be a MI, public function. It
wasn't intended to be to begin with, and uses of it (e.g. the one in the
'de' driver) are quite likely to be incorrect.
1997-07-19 09:49:39 +00:00
mjacob
ff21c8f511 Turn of 'unclaimed interrupt' messages- we know about them already- we can't
really fix this as yet.
1997-06-24 18:08:59 +00:00
thorpej
c8615e2f7c Add code to decode the PCIA_RESENT register. Display information on
the PCIA revision, and whether or not the STD I/O EISA bridge is
present.  Decode, but don't bother displaying, the power consumption
information for each PCI slot.
1997-06-08 07:59:20 +00:00
thorpej
183655c71b Add bit definitions for the PCIA_PRESENT register. 1997-06-08 07:57:40 +00:00
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