Commit Graph

1798 Commits

Author SHA1 Message Date
mjacob 84076832df add some more offset definitions 1998-07-08 00:45:08 +00:00
mjacob 6f87cdce00 Start of the platform specific (RAWHIDE) machine check handler. This
is not really needed for this platform, except that we might want to
handle PCI errors which get reported through here. In any case, this
prints out more info than is usual. Will probably need to detune
this to be based upon DIAGNOSTIC defines.
1998-07-08 00:44:32 +00:00
mjacob 57190a7be7 use new mchkinfo structures for expect/recv storage 1998-07-08 00:42:14 +00:00
mjacob 9035e8b3eb Move the search for number of cpus up earlier because we need to know
how many cpus there are when we (now) valloc per-cpu machine check
structures.
1998-07-08 00:41:32 +00:00
mjacob 275fb86f8d add some error handling definitions 1998-07-08 00:40:18 +00:00
mjacob 35ffe8edb3 Add machine check type definitions. Structure the expected/received
machine check items.
1998-07-08 00:39:02 +00:00
mjacob dfe345a444 common logout structure definitions, or a start thereof 1998-07-08 00:36:18 +00:00
mjacob 9c326571d3 add a common logout printing routine file 1998-07-08 00:34:49 +00:00
mjacob 163f4f10b1 add common logout printing routine file 1998-07-08 00:34:27 +00:00
thorpej de83dce0de On second thought, call that like the rest of the shared intr functions. 1998-07-07 22:24:38 +00:00
thorpej c7f8d02b23 Always count the number of strays we encounter, but don't send a "stopped
logging" message if we're ignoring strays.
1998-07-07 22:06:29 +00:00
thorpej 1ddd528346 Fix typi. 1998-07-07 22:02:57 +00:00
thorpej e82fc7d3cd The Pyxis core logic in the 164SX and 164LX seems to have problems with
stray interrupts.  Do what Digital UNIX (formerly DEC OSF/1) does; just
ignore strays.
1998-07-07 21:49:47 +00:00
thorpej ca73507d0b The Pyxis core logic in the Miata seems to have problems with stray interrupts.
Do what Digital UNIX (formerly DEC OSF/1) does; just ignore strays.
1998-07-07 21:47:49 +00:00
thorpej be83de18fd Use ALPHA_SHARED_INTR_DISABLE() to test if a shared interrupt should
be disabled after a stray.
1998-07-07 21:44:57 +00:00
thorpej 443d238f70 Define a macro to test if a shared interrupt should be disabled after
a stray has occurred.
1998-07-07 21:37:11 +00:00
ross dbd55159a2 Teach dec_axppci_33_init() a little about the nsio config registers,
enable the nsio IDE, and leave the config register ISA ports mapped.
1998-07-07 08:49:12 +00:00
jonathan b37021c1a1 defopt NATM. 1998-07-05 22:48:05 +00:00
jonathan 011f2bda08 defopt NS, NSIP. 1998-07-05 06:49:00 +00:00
jonathan 5c0c5dd0b4 defopt ISO TPIP. 1998-07-05 04:37:35 +00:00
jonathan 8db0fcdbf7 defopt CCITT. 1998-07-05 02:12:22 +00:00
jonathan 3751946b97 defopt INET, NETATALK. 1998-07-05 00:51:04 +00:00
jonathan 466e784ee1 defopt DDB. 1998-07-04 22:18:13 +00:00
thorpej 8978015d51 Mark the kernel pmap `active' in pmap_bootstrap(). 1998-07-03 05:22:10 +00:00
mjacob efee8aedfa If GENERIC has SCSIVERBOSE on, having it off here makes no sense 1998-07-02 23:36:59 +00:00
ross 7897fc307b Add support for:
DEC_1000
	DEC_1000A
	DEC_ALPHABOOK1
	DEC_EB66

Remove support (ran out of space) for: ahc and bha. SCSI must be ncr or isp.
This will be fixed soon by defining an optional, two-floppy install
alternative.
1998-07-01 09:14:02 +00:00
drochner 9a04d7d9f2 adapt to wscons interface change 1998-06-30 09:02:08 +00:00
thorpej 02b767eee5 Take a stab at EB66 support. An EB66 is basically an EB64+ with a
21066 LCA instead of a 21064 + APECS.
1998-06-27 10:10:51 +00:00
thorpej dff0b84aba Oops, forgot option header. 1998-06-27 08:59:03 +00:00
ross 50604bf85b Kill off some EVCNT_COUNTERS calls, since [A] it has to be rewritten anyway
before it can be useful, and [B] #ifdefs do not belong at every call site,
a common API should be defined and the implementations conditionalized, not
the calls. Duhh.

Also, remove the initial XXX mystery_icu debugging code.
1998-06-26 21:59:46 +00:00
ross e5e9adb326 Note ST_DEC_1000 as PCI/EISA. 1998-06-26 21:55:38 +00:00
ross e31a396c68 Add AlphaServer 1000 interrupts. 1998-06-26 21:55:09 +00:00
ross 843dd2d279 Add DEC_1000 support for new Mikasa[/Pinnacle] platform.
INSTALL-FLOPPY will have to wait; it needs attention w.r.t. size.
1998-06-26 21:53:10 +00:00
ross 0ce5563488 Turn on ST_DEC_1000, but reuse the 1000a init and console routines. 1998-06-26 21:49:25 +00:00
ross a0f70c580c New platforms: Mikasa and Mikasa/Pinnacle, aka Pinkasa.
Like the 1000A, the AlphaServer 1000 has a daughtercard assembly that
integrates the CPU and core logic, so these can be ev4/apecs or ev5/cia.
New systype, and, sigh, another way of doing interrupts and another
mystery icu.

Kill off some EVCNT_COUNTERS calls, since [A] it has to be rewritten anyway
before it can be useful, and [B] #ifdefs do not belong at every call site,
a common API should be defined and the implementations conditionalized, not
all the calls. Duhh.
1998-06-26 21:45:56 +00:00
thorpej 0131c651bd Add DEC_1000A, per GENERIC. 1998-06-26 05:43:21 +00:00
thorpej 78d7f07efd Very preliminary support for the Tadpole/DEC AlphaBook. These are basically
AXPpci33 machines + power management and a Cirrus PCI-PCMCIA controller.

There is currently no support for the power management facilities, and
the PCI-PCMCIA controller driver needs some work, but this should boot
and run from disk.
1998-06-26 05:42:34 +00:00
lukem bd8d501f7e remove options FIFO; it's now the default 1998-06-26 01:53:43 +00:00
thorpej ac57178fc0 defopt COMPAT_OSF1 1998-06-26 00:00:41 +00:00
thorpej 971b8956ef defopt KTRACE 1998-06-25 21:18:11 +00:00
ross de27f1befc Don't bother reading the ELF string table out of a stripped /netbsd[.gz].
In this case, all it has in it are the never-referenced printable names
for the ELF sections themselves. It's located at the end of the (ramdisk)
netbsd.gz file, so it is a very expensive seek and read for only 85 bytes.

Boot floppy load time:

	before:	5 minutes
	now:	3 minutes
1998-06-25 06:45:46 +00:00
ross 63e87b1a8e New platforms: Noritake, Pintake, and Corelle. Sometimes these are ev4/apecs,
sometimes they are ev5/cia.
1998-06-24 01:38:59 +00:00
ross 6c1e8f5b20 Use the new LOCATE_PCS() macro. 1998-06-24 01:33:19 +00:00
ross 49d5ae18ba Call pci_1000a_pickintr() like on other platforms, but for 1000a expand
the iot, memt, and pc in the call so that pci_1000a_pickintr() (and the
other routines in that module) do not need to be aware of the core logic
type just to pass down memory and I/O space tags or to call the decompose
function.
1998-06-24 01:32:06 +00:00
ross 92aafa4a46 Identify ST_DEC_1000A as PCI/EISA.
New macros:

	LOCATE_PCS(struct rpb *hwrpb, int cpu_number)
	PCS_PROC_MAJORTYPE(struct pcs *)
	PCS_PROC_MINORTYPE(struct pcs *)

Define LOCATE_PCS() to map (hwrpb, cpu_number) -> Per-Cpu-Slot structure.

Replace the PCS_PROC_{MAJOR,MINOR}{,SHIFT} stuff with macros that simply
return the major and minor cpu type codes.
1998-06-24 01:20:43 +00:00
ross f1cc92f606 Add dec_1000a interrupts. 1998-06-24 01:14:55 +00:00
ross 731f8f0abd Add DEC_1000A platform. 1998-06-24 01:12:45 +00:00
ross ebc133a0ec Clean up code using new LOCATE_PCS() macro. 1998-06-24 01:11:09 +00:00
ross 7f61979398 Use new LOCATE_PCS() macro. 1998-06-24 01:10:35 +00:00
ross b314521ce9 Replace expression with new LOCATE_PCS() macro. 1998-06-24 01:09:45 +00:00
ross c705adbc8a New systype for DEC_1000A: Noritake, Pintake, and Corelle. 1998-06-24 01:08:28 +00:00
ross ee709bc9e1 Replace expressions with the new macros: LOCATE_PCS(), PCS_CPU_MAJORTYPE(),
and PCS_CPU_MINORTYPE().
1998-06-24 01:06:26 +00:00
ross d273e10d2d Protect against multiple inclusion. 1998-06-24 01:04:26 +00:00
thorpej e2ebc10c2d Duuuh! Align the SGMAP page tables to 32K, not 32M. 1998-06-23 02:31:05 +00:00
drochner 6c7fabb232 adapt to wscons interface change 1998-06-21 09:51:59 +00:00
kleink 1fbd0b3749 GC the unused `physadr' type, which was not able to hold a complete physical
address on 2 architectures anyhow.  Also, move the definition of the `label_t'
type inside _KERNEL protection, since it is specific to the in-kernel
setjmp()/longjmp() implementations.
1998-06-14 20:09:22 +00:00
cgd 651b44e211 Rework the way kernel include files are installed. In the new method,
as with user-land programs, include files are installed by each directory
in the tree that has includes to install.  (This allows more flexibility
as to what gets installed, makes 'partial installs' easier, and gives us
more options as to which machines' includes get installed at any given
time.)  The old SYS_INCLUDES={symlinks,copies} behaviours are _both_
still supported, though at least one bug in the 'symlinks' case is
fixed by this change.  Include files can't be build before installation,
so directories that have includes as targets (e.g. dev/pci) have to move
those targets into a different Makefile.
1998-06-12 23:22:30 +00:00
mjacob b6ac862e01 Roll back to 1.55 level since 1.56 will not compile. 1998-06-12 21:14:43 +00:00
thorpej dfeb8f794c Delete a debugging clause that is no longer necessary, and also can't
work properly if we're testing for a pmap active on _other_ processors.
1998-06-12 07:28:07 +00:00
thorpej 0a47d0d577 Rename active_pmap() to PMAP_ISACTIVE(). 1998-06-12 00:45:47 +00:00
thorpej ff16cd85c0 In pmap_enter(): if old PTE was not valid, we don't need to sync
the I-stream, for the same reason we don't need to invalidate the TLB.
1998-06-11 10:36:08 +00:00
thorpej 2683c2826d Track mappings entered w/ VM_PROT_EXECUTE, and only synchronize the
I-stream when changing PTE bits or removing mappings that were entered
w/ EXECUTE protection.
1998-06-11 10:30:14 +00:00
thorpej c0c2cb0f9a Garbage-collect the old PMAPSTATS stuff; it didn't compile, and should
just be redone from scratch.  Get it out of the way now to make it easier
to restructure a few things.
1998-06-11 05:16:35 +00:00
thorpej 3af0f95d24 Define a macro to test PG_EXEC. 1998-06-11 05:10:41 +00:00
thorpej 55207ad8b4 Define a software PTE bit to track VM_PROT_EXEC. 1998-06-11 05:09:47 +00:00
thorpej afc9b7c59b Significantly reduce the number of I-stream synchronizations by really
decoupling this operation from TLB invalidations (e.g. pull I-stream
syncs out of loops, executing them only once, etc.).
1998-06-11 05:08:37 +00:00
thorpej 817b595bab Separate syncing the I-stream from invalidating the translation buffer. 1998-06-11 02:45:21 +00:00
thorpej 1abd24fffe Correct a comment. 1998-06-11 00:34:16 +00:00
thorpej 02182100df Use config_defer(). 1998-06-09 18:49:33 +00:00
ross 69717a7f0e Fix a UVM #if so {} balance is preserved and ctags(1) doesn't lose. 1998-06-09 09:31:58 +00:00
thorpej 680a3d77f4 Add isa_dma{freeze,thaw}(), used to temporarily stop and then restart
all ISA DMA.  Needed by e.g. the SmartCard reader for Sharks.
1998-06-09 01:04:17 +00:00
thorpej 53394a1d41 Change the ISA DMA API to take an isa_chipset_tag_t rather than
a struct device * corresponding to the ISA bus device.  The ISA DMA
controller driver functions have been renamed and now take a struct
isa_dma_state *, and are called indirectly by machine-dependent code
which provides the DMA state.

These changes allow e.g. `ofisa' (the OpenFirmware configuration
mechanism for the ISA bus, used by e.g. Sharks) to use the MI ISA
DMA controller code.
1998-06-09 00:06:54 +00:00
thorpej 8dedb90f13 The ISA chipset must persist; it's required after autoconfig time. 1998-06-08 23:49:05 +00:00
thorpej f5cd6a7736 Add debugging support to the bus_space macros. If BUS_SPACE_DEBUG (or DEBUG)
is defined, the bus_space macros will check to ensure that the bus address
and the target buffer (if applicable) are aligned properly for the size
of the type being used.  If they are not, a message will be displayed on
the console.

Strict alignment is required by the Alpha architecture, and a trap will
occur of unaligned access is performed.  These changes will aid debugging
of broken device drivers.
1998-06-08 03:42:19 +00:00
sommerfe aedc717c00 Hopefully avoid breaking PCMCIA on alpha. 1998-06-07 19:11:29 +00:00
thorpej 2e9939699d Kernel configuration for my Multia, an example of how to configure a
Multia w/ PCMCIA support.
1998-06-07 00:45:35 +00:00
thorpej 14df007174 Oops, don't forget to fill in *addrp. 1998-06-07 00:29:29 +00:00
thorpej 0890af5ca8 Only disable an interrupt line after MAXSTRAYs if there is no handler
attached; we get stray interrupts on PCI devices sometimes, for some
unknown reason.  (Similar problem exists on the 164SX, which also has
a Pyxis.)
1998-06-06 23:29:23 +00:00
thorpej 331a7f56c1 Remove some debugging code no longer relevant now that we have DMA
window chaining.
1998-06-06 23:11:52 +00:00
thorpej eabad6b572 Implement bus_space_{alloc,free}() for swiz PCI I/O space. 1998-06-06 22:44:46 +00:00
thorpej 7a6d646c9b Implement bus_space_{alloc,free}() for BWX bus space. 1998-06-06 22:28:16 +00:00
thorpej fe17c44d6c Add support for software powerdown of the Digital Personal Workstation. 1998-06-06 20:53:41 +00:00
thorpej 04ba8480ae Use REGVAL64() to frob the Pyxis interrupt mask register. 1998-06-06 20:42:36 +00:00
thorpej 098dd211c7 Define a REGVAL64() for some Pyxis registers. 1998-06-06 20:40:14 +00:00
thorpej 49aea111fb If the platform specified a powerdown hook, and howto has RB_POWERDOWN,
call the hook.  If the hook fails, print a warning, and just halt (RB_HALT
is implied by RB_POWERDOWN).
1998-06-06 20:39:04 +00:00
thorpej 1733ad8dc5 Clean up a little, and add a `powerdown' hook in the platform structure. 1998-06-06 20:18:50 +00:00
thorpej d08070a693 Add a comment describing the locking needs of the alpha_sgmap. 1998-06-06 20:12:28 +00:00
thorpej 85d08836f1 - Don't call *_dma_init() twice; there's no need to. Just do it in *attach().
- Display Pyxis revision properly.
1998-06-06 01:33:44 +00:00
thorpej c0fa3c6ac4 Don't call *_dma_init() twice; there's no need to. Just do it in *attach(). 1998-06-06 01:33:23 +00:00
thorpej 59d76407b4 Display information about which sgmap we're attempting to initialize
if we die in alpha_sgmap_init().
1998-06-06 01:31:46 +00:00
thorpej 9331237596 Oops, turn off some debugging printfs. 1998-06-05 21:47:14 +00:00
thorpej bf8523f4e4 - Egads! There are Pyxis "Pass 1" chips that do not have the DMA bug!
Use the check recommended by the Digital Workstation engineers; look
  for Miata 1 systems (i.e. with Intel SIO).  From Andrew Gallatin.
- Update copyright (Pyxis and BWX).
1998-06-05 19:25:19 +00:00
thorpej f251e3372d Don't attempt to map the PCI IDE interrupt at bus 0 device 11 on the
AlphaPC 164 and AlphaPC 164LX - these are wired to compatibility mode.
1998-06-05 19:15:41 +00:00
thorpej 1aa688234e Miata 1 has an Intel SIO at bus 0 device 7 and a CMD PCI IDE at bus 0
device 4.  Miata 1.5 and Miata 2 have a Cypress at device 7 and PCI IDE
at functions 1 and 2 of the Cypress (like the PC164SX).  These on-board
PCI IDE controllers are wired to compatibility mode, so don't bother
trying to map the interrupt.
1998-06-05 19:04:51 +00:00
thorpej a1c151d56b Add system variation for Miata 1.5. 1998-06-05 18:18:37 +00:00
thorpej c072110af0 Actually, I did use a few of them on this file (I wasn't clear enough
in my mail to Ross, I guess...)
1998-06-05 17:42:53 +00:00
thorpej bb362059ac On Pass 1 Pyxis, disable PCI Read Prefetching, and warn the user about
the DMA bug that exists on this Pyxis revision.
1998-06-05 17:24:11 +00:00
thorpej 29977868a7 What was called CNFG in ALCOR and ALCOR2 is actually called PYXIS_CTRL1
in Pyxis.  Add a comment to this fact.
1998-06-05 17:22:34 +00:00
thorpej 73e5032ac9 Define the Pyxis-specific bits in the CIA_CSR_REV register (ID mask, and
the ID for the 21174).
1998-06-05 17:16:31 +00:00
thorpej 2701ea3ef3 Add DEC_550 (Miata). 1998-06-05 17:03:07 +00:00
ross 5790ee09ee Revert...Jason didn't use Andrew's diffs. 1998-06-05 15:28:40 +00:00
ross 8f455480ef Tweak the copyrights a little bit. pci_550.h gets a TNF copyright, not
CMU, and pci_550.c keeps TNF but gets "Andrew Gallatin and Jason R. Thorpe".
1998-06-05 03:34:27 +00:00
thorpej cf914cac00 oops, read CNFG on all Pyxis revs. 1998-06-05 02:15:38 +00:00
thorpej cbaedc8675 Support for the Digital Personal Workstation [456]xx, a.k.a. Miata (systype
DEC_550).  Mostly cloned from the EB164 systype, with some modifications
from myself, and a few more from Andrew Gellatin.
1998-06-05 02:13:41 +00:00
thorpej 3cfb38c5d1 Define the Pyxis interrupt request register. 1998-06-05 00:53:02 +00:00
thorpej 3249813e11 For whatever reason, the firmware seems to enable PCI loopback mode if it
also enables BWX.  Make sure it's enabled if we have an old, buggy firmware
rev.
1998-06-04 22:58:33 +00:00
thorpej d4d49905dd Add support for using BWX for PCI config space and PCI i/o and mem space
on the ALCOR2 and Pyxis.  BWX is enabled iff:
- It hasn't been disabled by the user (patch `cia_use_bwx' or build cia.o
  with the option "CIA_USE_BWX=0"),
- it's enabled in CIA_CSR_CNFG,
- we are running on an EV5-family processor,
- BWX is in the processor's capabilities mask.
1998-06-04 21:34:45 +00:00
thorpej 616125f8d1 Deal with a hardware bug in Pass 1 and Pass 2 Pyxis chips. Basically,
the scatter/gather TLB cannot be invalidated on these chips.  So, to
work around this, we configure the otherwise unsed DMA Window 2 as a
2M SGMAP window at 128M, point all of its page table entries at the
DMA spill page, and, when the TLB is to be invalidated, put the PCI bus
into loopback mode, and create a target hit on Window 2 every 64k for
the number of TLB entries (plus a few ... it seems to not work unless
we read a few extra times), forcing out old TLB entries to make room for
the new, dummy target hits.
1998-06-04 18:11:23 +00:00
thorpej a51d42503c Export the spill page PTE, and provide a hook to initialize it early. 1998-06-04 01:22:52 +00:00
thorpej 6dc28f5445 CIA and Pyxis have 8 scatter/gather TLB entries. 1998-06-04 01:18:22 +00:00
thorpej 32fef69ef7 Define the CIA control register. 1998-06-04 01:04:11 +00:00
thorpej d94f02f9fd Ok, now we _REALLY_ have Pyxis recognition correct. There are two systypes
that can have Pyxis: EB164 (AlphaPC164LX and AlphaPC164SX) and DEC_550 (Miata),
and these systypes/variations _always_ have Pyxis.
1998-06-03 23:16:55 +00:00
thorpej 44605ba506 Define a bunch more system variations. 1998-06-03 23:07:38 +00:00
thorpej 15c52040a5 Define the ALT_MEM big in the CIA revision register. 1998-06-03 22:19:08 +00:00
mjacob 9f5797ac1d turn on Essential HIPPI for these configurations 1998-06-03 21:16:28 +00:00
thorpej d6041754c2 Allow the DMA tag to specify a boundary contraint. If the device has a
more strict boundary, the map will use it, otherwise the map will inherit
the tag's, unless the tag's constraint is 0 (no boundary constraint).
1998-06-03 18:25:53 +00:00
thorpej 50be447da3 Sync the bus_dmamap_load back-end functions between alpha and i386. (only
slight, unnecessary differences)
1998-06-03 04:15:05 +00:00
thorpej 7022024d4a Add epic* at pci? 1998-06-02 01:43:33 +00:00
thorpej a7f360c6c9 Specify a non-profiling C rule. 1998-05-31 23:25:41 +00:00
matt 5d6bc16daa more optimizations 1998-05-29 15:55:34 +00:00
matt 164da176e8 Add boundary checks to _bus_dma_load... 1998-05-29 15:25:07 +00:00
drochner 0c05b92da1 pull in new PC display headers 1998-05-28 16:59:31 +00:00
thorpej c59c1eae2a Define ioasic device offsets in terms of standard ioasic "slot" offsets. 1998-05-27 00:18:13 +00:00
thorpej 1ef3ca572e - Additional rearrangement for the sake of running on the DECstation some
day.
- Convert to use bus_dma.
- Fix cleaning up unaligned start address.
- Correctly determine if the device supports Fast SCSI, and adjust the
  minimum sync period accordingly.
- Compute minimum sync period correctly on the 25MHz devices.
- Use GPI2 to determine if we're a 25MHz or 40MHz device.
- Currectly determine SCSI ID and "fast mode enabled" for the built-in
  TCDS on DEC 3000 models, using cached information from the PROM environment.
1998-05-26 23:43:05 +00:00
thorpej ab087002d1 Make this into a proper attachment (i.e. use asc_tcds) and clean up
the namespace accordingly.
1998-05-26 23:37:44 +00:00
thorpej 3aa84f9e26 - Make this into a proper attachment (i.e. use asc_tcds) and clean up
the namespace accordingly.
- Set FCLK in the CFG3 register if we have a > 25MHz clock.
- Indicate that we support Fast mode to the back-end if we're told we're
  fast by the TCDS layer.
- Correctly compute the minimum sync period.
1998-05-26 23:37:27 +00:00
thorpej 3ce836df8d Make the TCDS attachment of the ASC driver a proper attachment (i.e.
attach it with asc_tcds).
1998-05-26 23:34:23 +00:00
thorpej 2d384ae1a1 GPI2 in the CIR register indicates our clock speed: 1 = 25MHz, 0 = 40MHz. 1998-05-26 22:48:01 +00:00
kleink a97fc2f180 If any of _ANSI_SOURCE, _POSIX_C_SOURCE or _XOPEN_SOURCE are defined, don't
provide any identifiers other than sig_atomic_t.
1998-05-25 20:59:01 +00:00
thorpej e569598438 On DEC 3000s, ask the prom for the SCSI ID and "fast mode enabled" of
the built-in TCDS, while we can still access the prom.
1998-05-25 05:16:42 +00:00
thorpej 085b73d2db Add "SCSIID" and "SCSIFAST" environment variables present on the
DEC 3000 systems.
1998-05-25 04:01:10 +00:00
thorpej 57c68363d6 Add support for reading the SCSI ID and "fast mode enabled" from the
PMAZB-AA and PMAZC-AA EEPROM.
1998-05-25 01:14:38 +00:00
thorpej 3b9e9634fb - Change the tcds child locator from "slot" to "chip", making it look less
like a TurboChannel locator, and more like what is actually going on.
- Allow tcds and asc children of tcds to be cloned.
1998-05-24 23:45:29 +00:00
thorpej d3ead78027 Several changes to the TurboChannel Dual SCSI driver:
- Fix the autoconfiguration model; the TCDS children don't attach to
  TurboChannel, so don't make it look like they do.
- Make the driver use bus_space (not bus_dma yet; soon)
- Recognize the PMAZ-FS (baseboard fast SCSI on DEC 3000s) and the
  PMAZB-AA (TCDS option card) and PMAZC-AA (TCDS fast SCSI option card).
- Rearrange it a bit, so that it can eventually be made into an "MI"
  TurboChannel driver (i.e. work on DECstations).
1998-05-24 23:41:42 +00:00
ross a3073631d7 Rebury an old mach-vm-quirk warning, for mach vm kernels. 1998-05-24 22:15:19 +00:00
ross 1ce82f8f84 Fix previous to kill gcc warning in non-DEBUG compile. 1998-05-24 20:59:49 +00:00
matt 66e7b8998f Only disable stray interrupts if there is no interrupt handler attached 1998-05-24 19:09:57 +00:00
matt a54568bc38 Add PCMCIA hooks (taken from files.i386) 1998-05-23 22:42:14 +00:00
ross 02ae2c98b3 In pmap_pv_enter() untangle the allocated pv (now "newpv") and the DEBUG
loop temporary so DEBUG kernels don't trap on startup.
1998-05-23 22:23:09 +00:00
ross 30e2441b99 Prototype sio_intr_alloc(). 1998-05-23 21:36:33 +00:00
matt 9c2e213217 Add sio_intr_alloc (copied from i386's isa_intr_alloc) for PCMCIA. 1998-05-23 18:35:56 +00:00
matt 11e1975af7 Add isa_intr_alloc macro (for PCMCIA). 1998-05-23 18:35:03 +00:00
thorpej 3dfd62c76f cs_heldchar is gone. 1998-05-23 00:51:10 +00:00
thorpej 0cb3acc9ae Correct a small, but fatal, typo. 1998-05-21 23:38:04 +00:00
thorpej 93d96b3415 Add LOCKDEBUG (commented out). 1998-05-20 18:09:16 +00:00
thorpej a2f214a443 Add fine-grained locking, using a locking protocol modeled after the i386
UVM pmap's locking protocol, written by Chuck Cranor.  Not all of the
support for multiple processors is here yet, but the kernel does run
under moderate loads with LOCKDEBUG (all locking operations are no-ops
unless LOCKDEBUG is turned on).

This is by no means complete... there are still some possible snares
to take a look at.
1998-05-20 04:05:50 +00:00
thorpej 6626878e7b It is no longer necessary for pmap_pinit() and pmap_release() to be
pmap interface functions, as NetBSD no longer uses statically allocated
pmaps (except for the kernel pmap, which is special-cased anyhow).
1998-05-19 19:00:11 +00:00
thorpej ca819f2940 Argh, finish renaming Lev1map to kernel_lev1map. 1998-05-19 18:35:11 +00:00
thorpej eaf145ad5e Make function naming consistent, and teach pmap_pv_dump() about page
usage types.
1998-05-19 05:21:34 +00:00
thorpej dc13176aec No need to keep global pointers to the initial kernel level 2 and level 3
page tables.  Also, rename Lev1map to kernel_lev1map.
1998-05-19 02:57:01 +00:00
thorpej 804e5be6f7 Nuke `register'. 1998-05-19 02:43:48 +00:00
thorpej 293854e385 Put pmap_initialized in the BSS segment. 1998-05-19 02:42:41 +00:00
thorpej ca12fa7ebe Make PT page reference counting more generic so it can be used for other
special use page types.
1998-05-19 02:04:28 +00:00
thorpej 8fdc16212f The Alpha architecture has a variable page size; don't hardwire the
number of PV entries per page at compile time.
1998-05-19 00:42:16 +00:00
thorpej b44dc2ecbf Make the page attribute manifest constant names have similar form to
page usage manifest constant names.
1998-05-19 00:29:03 +00:00
thorpej 180f140a85 Keep track of page usage inside the pmap (pvent, l{1,2,3}pt page, "normal"). 1998-05-19 00:20:21 +00:00
matt ba482f242f Fix lc0 (lemac) line(s) so that the de20[345]s will work again. Add depca
for de20[012]s (tested and works on a pc164sx).
1998-05-14 21:53:40 +00:00
drochner 95bdb660ed Simple screen attribute handling for wscons.
The graphics device driver passes a "default attribute" for normal text
output to the wscons framework. If the emulation module needs more
attributes (for different "renditions") it can allocate them via a
callback.
For now, only the "sun" emulation makes use of it.
1998-05-14 20:49:55 +00:00
thorpej d19fbe1196 Garbage-collect the old confargs stuff that was used in the Early Days.
It isn't really appropriate anymore.  Replace it with a real mainbus
attach args structure.
1998-05-14 00:01:30 +00:00
thorpej 6a49b0a33e Clean up some historical artifacts. 1998-05-13 23:38:26 +00:00
thorpej 748d204949 Cleanup TurboLaser autoconfiguration somewhat. 1998-05-13 23:23:23 +00:00
thorpej b24eb75496 Clean up a buglet. 1998-05-13 23:22:08 +00:00
thorpej ca9600b324 Implement and use gbussubmatch(). 1998-05-13 22:13:35 +00:00
thorpej 326f8183dc No need to hard-code the mcclock offset on the gbus; gbus is direct-config. 1998-05-13 22:03:07 +00:00
thorpej fb9726fe91 Add a few files related to the Digital Personal Workstation. 1998-05-13 21:59:32 +00:00
thorpej 49aa171ab9 Add support for chaining DMA windows together, for falling back on
SGMAPs if a direct-mapped window fails.
1998-05-13 21:21:16 +00:00
thorpej b012e4e39b Normalize gbus configuration somewhat, and add support for configuring
the Zilog DUARTs.
1998-05-13 02:50:29 +00:00
thorpej 6172f5a0ac Use flags instead of a bunch of booleans. Add a "use bwx" flag. 1998-05-12 19:07:21 +00:00
thorpej 0b64ea0879 Gah, typo. 1998-05-12 18:45:04 +00:00
thorpej 86ee1b1000 Oops, and the writes, too. 1998-05-12 18:44:32 +00:00
thorpej cc45d00d3c Clean up the code that puts the PCI controller into config mode 1; no
functional difference.
1998-05-12 18:40:44 +00:00
thorpej 34bbe5cd80 Rework ALCOR/ALCOR2/Pyxis recognition Yet Again. (Actually, just the
way it's displayed, and mask off the revision once we've determined
which chip we're talking to.)
1998-05-11 23:56:16 +00:00
thorpej 0624060713 Rework PCI interrupt mapping on the EB164 systype. Rather than computing
interrupt routing directly, use the interrupt routing information provided
in the PCI "line" register.  The previous scheme did not work properly on
AlphaPC 164SXs.  Also, be silent about the fact that 0/8/x does not
have its interrupt mapped; this is to be expected on the 164SX (this is
the Cypress PCI-ISA bridge, which has IDE wired to compat mode on functions
1 and 2; the 164SX does _not_ have PCI IDE on device 11 like other AlphaPCs).
1998-05-11 23:36:46 +00:00
thorpej d5157b2b05 Sync w/ reality 1998-05-11 00:34:24 +00:00
kleink 687ea7404c Fix some arithmetics lossage on typeless pointers. 1998-05-08 16:55:15 +00:00
thorpej 4665241bf8 Simplify the direct-mapped DMA case somewhat by adding a window base
member to the DMA tag, and calling the direct-mapped back-ends directly,
rather than through chipset-specific front-ends which pass the window
base as an additional argument.
1998-05-07 20:09:37 +00:00
mjacob 294015435b remove the unneccessary alpha_mbs and slight cleanup 1998-05-05 22:01:54 +00:00
mjacob 742983f1eb make it impossible to compile w/o SIO (you cannot have a console otherwise 1998-05-05 22:01:31 +00:00
mjacob 1363662600 update for new ws stuff, plus cleanup 1998-05-05 22:00:28 +00:00
mjacob 0713044d87 carry over new ws words from GENERIC 1998-05-05 20:29:18 +00:00
mjacob bcfe658515 Move declaration within block where it will be used (in case
keyboard not defined).
1998-05-05 20:10:05 +00:00
thorpej 88bf077524 Don't need options UVM and PMAP_NEW anymore; they're now standard. 1998-05-04 04:38:28 +00:00
thorpej 22e3e4691d Make UVM+PMAP_NEW the standard VM system on NetBSD/alpha. 1998-05-04 04:35:46 +00:00
ross 53dbd5b7fc Add file-system MFS to support ftp download of sysinst. 1998-05-03 23:15:45 +00:00
augustss abbe1b7df3 Add Ensoniq AudioPCI driver. Commented out until tested. 1998-05-01 22:26:54 +00:00
thorpej b3cdc88a22 Fix some whitespace. 1998-05-01 05:22:16 +00:00
ross d38d75c9fb Include net/route.h 1998-04-30 08:27:59 +00:00
ross 1e075b072d Rewrite active_pmap() and again kill the reborn curproc bug. 1998-04-30 08:27:00 +00:00
mjacob de4d1c62af pretty much redo interrupt code- now handles shared interrupts and solves the buspin int problem 1998-04-30 04:31:19 +00:00
mjacob e3904356a4 do some mbs before a config read/write 1998-04-30 04:25:22 +00:00
thorpej 1686aca01d Pull in opt_gateway.h as appropriate. 1998-04-29 23:11:00 +00:00
thorpej 9e97d1cc17 Define Pyxis Interrupt Mask and General Purpose Output registers. 1998-04-29 03:09:26 +00:00
thorpej 47a53b61ec Add the DEC 550 Personal Workstation slot. 1998-04-29 02:41:41 +00:00
thorpej 371b1a7fb7 Define the DEC 550 Personal Workstation (Miata) systype. 1998-04-29 02:39:24 +00:00
thorpej 829fa05638 Ignore any `-' characters that might have been passed in the boot flags. 1998-04-29 02:13:51 +00:00
thorpej a152517daa Add interrupt counter space for the DEC EB64+, and fix a misplaced
counter comment in the kn300 interrupt counters.
1998-04-29 00:34:06 +00:00
thorpej 28b467b65b Add support for the DEC EB64+. 1998-04-29 00:24:59 +00:00
thorpej 23a168699c Build EB64+ PCI support if DEC_EB64PLUS is configured. 1998-04-29 00:24:28 +00:00
thorpej 861c7a7e2d Add a stub pckbc_machdep_cnattach() which simply returns an error. This
function is meant to glue the new pckbd driver to the old console code
on ports which use the old PC-style console code.  This will eventually
be purged when all of the old legacy consoles have gone away.
1998-04-28 19:14:27 +00:00
thorpej 4ccb48a525 Try (again) to get the chip number right for Alcor and Pyxis, using the
following (iffy) hueristic:

	CIA revision 1   -> 21171
	CIA revision 2   -> 21172
	CIA revision > 2 -> 21174
1998-04-28 18:11:35 +00:00
thorpej b217194508 Fix the semantics (and the comment describing them) of pmap_update(). This
function is intended to process any deferred pmap operations, and is not
meant as a general means of flushing the TLB.  Since this pmap module does
not defer any operations, make pmap_update() do nothing.
1998-04-27 19:17:16 +00:00
thorpej 30188853dc Increase the efficiency of pmap_l{2,3}pte() somewhat, by allowing the
caller to pass an optional 3rd argument, which is the previous level
PTE corresponding the virtual address.  If this argument is non-NULL,
the table walk otherwise necessary will be bypassed.
1998-04-27 19:07:03 +00:00
kleink a53c1863fe Provide definitions for intptr_t and uintptr_t, signed resp. unsigned integral
types large enough to hold any pointer.
1998-04-27 17:39:10 +00:00
drochner 7f77474219 Oops, forgot to delete. It's in dev/pci now. 1998-04-26 11:57:00 +00:00
mjacob 384418e4b7 "Whitespace" does not mean uncommenting a reference to a file that does not, as yet, exist in the tree 1998-04-26 05:18:50 +00:00
thorpej b6eff278f2 Fix some whitespace lossage. 1998-04-25 00:12:44 +00:00
drochner 660e718e2e Drivers for PC-like console devices are MI now. 1998-04-24 20:05:54 +00:00
thorpej 6f3b521cd5 Whitespace sanity. 1998-04-24 18:18:41 +00:00
mjacob 6cd64be0b6 fix minor typo 1998-04-24 01:25:18 +00:00
thorpej 2b6154a68c Add PCI IDE. 1998-04-18 01:19:40 +00:00
thorpej 792e89a201 Add PCI IDE goop. 1998-04-18 01:19:08 +00:00
thorpej 4fc79b8fd3 First cut at PCI IDE compat interrupt support for the EB164 systype.
PCI IDE is found on the AlphaPC 164SX's Cypress PCI-ISA bridge.
1998-04-18 01:18:37 +00:00
thorpej 574b87a792 Initialize the PCI IDE compat interrupt PCI method to NULL; PCI IDE
compat interrupts are not currently supported on these platforms.
1998-04-18 01:12:23 +00:00
thorpej 78c7ebb2d0 Add a second Alpha-specific pci_chipset_tag_t method for establishing
PCI IDE compat interrupts.  Note that this function is optional, and
platform-specific code may initialize the pointer to NULL.
1998-04-18 01:10:54 +00:00
thorpej a5f006fb5f Fix a typo. 1998-04-18 01:09:20 +00:00
thorpej 783382095c Machine-dependent bits for PCI IDE. This redirects PCI IDE compat interrupt
goop to the appropriate platform-dependent code.
1998-04-18 01:08:52 +00:00
mjacob e77859a612 Hmmm... handle the case where there is no keyboard configured (panic
if the console selection is asking for it). Also add the stuff that
was missing from dec_kn300.
1998-04-17 02:45:19 +00:00
thorpej 815703e5ec Make function names in printfs and panics consistent. 1998-04-16 19:50:55 +00:00
thorpej a048ee73ca Fix a whitespace botch. 1998-04-16 19:40:56 +00:00
thorpej 2615a1d8d3 Allow device 8 (the SIO) to have its interrupt mapped; there might be
a PCI IDE controller on one of the PCI-ISA bridge's functions (e.g.
AlphaPC 164SX).
1998-04-16 19:24:24 +00:00
drochner 3cc1fe831c count allocated screens correctly 1998-04-16 12:52:42 +00:00
thorpej c72ac312a7 Add pcppi/spkr drivers, and use DHCP for NFS boots. 1998-04-16 04:11:50 +00:00
thorpej f92ae39153 Make this compile if a Rawhide isn't configured. 1998-04-16 04:04:15 +00:00
mjacob 512e80082b add an AlphaServer 4100 Specific config file 1998-04-15 21:53:25 +00:00
mjacob a8d3df00ed oops- add missing include 1998-04-15 21:42:24 +00:00
mjacob afeea01bbd add back in display console stuff 1998-04-15 21:29:03 +00:00
drochner b7c6c315ea convert to new wscons
(pcppi->pckbc, pms->psm, wscons->wsdisplay)
1998-04-15 21:19:21 +00:00
drochner b98513c4ff convert to mi wscons 1998-04-15 21:15:08 +00:00
drochner b9d78308c1 tell drivers that this port knows about the mi wscons stuff 1998-04-15 21:12:45 +00:00
drochner 534775fe76 explicitely initialize console keyboard 1998-04-15 21:06:46 +00:00
drochner c5ea534f57 Switch the console to polling mode before accessing the keyboard with
interrupts disabled.
1998-04-15 20:51:10 +00:00
drochner fba6e5e23a update for new mi wscons, add ISA speaker 1998-04-15 20:48:52 +00:00
drochner 584f3e8aa0 Adapt PCI console selection to new mi drivers. 1998-04-15 20:46:34 +00:00
drochner 971dd06182 Adapt ISA console selection ti new mi drivers.
(was broken anyway, a "++" was missing somewhere)
1998-04-15 20:43:07 +00:00
mjacob 70e72d5545 redo misleading comment (thanks, soren) 1998-04-15 20:37:39 +00:00
drochner 90fc55bdf9 use mi wscons and device drivers 1998-04-15 20:35:37 +00:00
thorpej f82e238b10 Don't need "delaybah" in the attach args anymore. 1998-04-15 20:11:10 +00:00
thorpej ba1ef83a1e Don't use the ISA `delay port', since it no longer exists. 1998-04-15 20:10:52 +00:00
mjacob bd2e0fee32 delay handle was removed 1998-04-15 19:49:19 +00:00
mjacob 6cc22e724e Hmmm- how did that happen- I missed a merge 1998-04-15 01:18:17 +00:00
mjacob cddc0bf326 add Alpha 4100 support 1998-04-15 00:53:53 +00:00
mjacob 6ad4ba8370 some cleanup 1998-04-15 00:51:00 +00:00
mjacob aed073a77f add Alpha 4100 support 1998-04-15 00:50:14 +00:00
mjacob 0ba76b38c8 spurious interrupt notification and finally adding vmstat -i support 1998-04-15 00:49:58 +00:00
mjacob 0229740b5e removal of unneeded define 1998-04-15 00:49:17 +00:00
mjacob 5f59df9630 oops on byte enables for TurboLaser systems 1998-04-15 00:48:58 +00:00
mjacob 4fa71d82a5 add Alpha 4100 support 1998-04-15 00:46:57 +00:00
mjacob 17ec1fbf11 clarification of comment 1998-04-15 00:46:41 +00:00
mjacob 65e5c41fad do not cia include files here 1998-04-15 00:46:17 +00:00
mjacob d3f1c5b8d8 add Alpha 4100 support 1998-04-15 00:45:43 +00:00
thorpej 164f56220e Add support for the Cypress CY82C693 PCI-ISA bridge. This bridge is more or
less like an Intel SIO except that the ELCR registers are accessed differently
than on the Intel SIO.

XXX This code needs to be split up into bridge front-end and PIC back-end
XXX pieces.
1998-04-14 22:31:17 +00:00
thorpej 4c01c3c48e Pass the pci_chipset_tag_t to sio_intr_setup(). XXX This code should be
rearranged so that other non-PCI-but-in-all-other-ways-ISA-PIC-like
devices can share code.
1998-04-14 22:20:59 +00:00
tv b21bfbde11 Add -Wno-main conditional on compiler being gcc 2.8 or egcs. (This adds
a HAVE_GCC28 check-variable that can now be used to add other gcc-2.8
flags in cases where they may be useful, or to remove gcc 2.7.2 "bug
workaround" flags.)
1998-04-12 23:47:41 +00:00
mjacob e40e2ff2d0 A little buglet: softc for pceb is same as sio- so declare it as such.
By not doing so, a very obscure bug followed where the config search
stuff stopped at the bridge (pceb) and didn't even call match for the
two Qlogic ISP cards that followed.
1998-04-12 08:32:19 +00:00
cgd 05bb5a1d2f revert back to 1.28 1998-03-30 17:52:03 +00:00
thorpej 0ce9e8b825 We don't have software-only maps, so a NULL pmap_t will never be passed
to pmap functions.
1998-03-28 19:53:42 +00:00
thorpej cbc72091e5 Remove a comment that is not applicable in NetBSD - we don't have
software-only maps.
1998-03-28 19:44:49 +00:00
thorpej ce4810822b Add autoconfiguration support for the Cypress 82C693 PCI-ISA bridge,
found on AlphaPC164SX boards.

Partially from Anders Magnusson <ragge@ludd.luth.se>.
1998-03-28 06:58:43 +00:00
cgd c0ac8bae67 GC alpha's ECOFF_TOOLCHAIN make variable, and related bits. Nobody
should be using an ECOFF toolchain on NetBSD/alpha any more.
1998-03-28 00:50:41 +00:00
thorpej 4893f22399 Much more sane boot block builds, from Chris Demetriou. 1998-03-28 00:21:35 +00:00
thorpej a95651eaea Add a PMAP_KERNEL_PTE() macro that returns the PTE for a given KVA. If
DEBUG, this performs a table walk.  Othwise, the Virtual Page Table is
used.  Use this macro in a few places where this was done by-hand.

Make vtophys() use PMAP_KERNEL_PTE().  In non-DEBUG cases, this is
a fair bit faster.
1998-03-27 19:18:04 +00:00
ross 2ce8cda3e5 Get rid of a /* in a comment. 1998-03-27 01:17:18 +00:00
thorpej b1e15c2005 Add some robustness to pmap_alloc_physpage(): Instead of panic'ing if
we can't get a page, find an inactive pmap and pmap_collect() it,
freeing up a few pages.  Go ahead and die if we can't allocate a page
after 5 tries.
1998-03-27 00:52:43 +00:00
thorpej b86884a71a Give pmap_collect() some substance: when called, a process is being
swapped out, so remove all of the physical mappings the process has
in order to free up the page table pages.

Since the pmap module is allowed to "forget" mappings, pmap_collect()
may be called in other situations where the memory situation is desperate,
although it's more likely that the pages will simply be needed again the
next time a process runs.
1998-03-26 22:18:36 +00:00
thorpej 531db9e0d3 Sanity check the virtual addresses in the kernel and non-kernel cases
of pmap_enter() (and pmap_kenter_*()).  Remove diagnostic check for
kernel pmap in pmap_alloc_asn().
1998-03-26 19:06:28 +00:00
thorpej 040f7cbc70 Remove references to pmap.old.h - It should have just been pmap.h, but
that isn't necessary, either, since <vm/vm.h> is already included.
1998-03-26 18:17:13 +00:00
thorpej c4ba627afc Kernel config file for bishop.nas.nasa.gov and ripley.nas.nasa.gov,
AlphaStation 500 and AlphaStation 600, respectively.
1998-03-26 03:00:36 +00:00
thorpej 9234f2450b Enable DDB history, netbsd.gdb. 1998-03-26 02:58:48 +00:00
thorpej 6111783e61 if NEW_SCC_DRIVER, 3000/300 and 3000/500 aren't PROM console candidates. 1998-03-26 02:53:21 +00:00
thorpej a9e071bef5 defopt NEW_SCC_DRIVER 1998-03-26 02:52:43 +00:00
thorpej 1282aca230 Add options UVM, PMAP_NEW, and NEW_SCC_DRIVER. 1998-03-26 02:51:46 +00:00
thorpej 73f1a02583 If NEW_SCC_DRIVER is defined, the 3000/300 and 3000/500 are not
PROM console candidates.
1998-03-26 02:45:34 +00:00
thorpej 7b4da708cc Add support for attaching a zstty as the console, conditional on
NEW_SCC_DRIVER.
1998-03-26 02:43:22 +00:00
thorpej 4a4bccc923 Remove references to NEW_PMAP. 1998-03-26 02:21:46 +00:00
thorpej 76ba34c797 Remove references to "new_pmap". 1998-03-26 02:19:02 +00:00
thorpej 456b3df281 Remove the Mach 3 pmap from the tree, replacing it with the contents of
pmap.old.<whatever>.  To see the history, look at the corresponding
pmap.old.<whatever> file.
1998-03-26 02:18:03 +00:00
thorpej 3ac5a77c70 Make pmap_kremove() deal with mappings entered with pmap_enter() as well.
Prevents stale PV entries from lingering around.  Fixes a nagging
"kernel stack not valid halt" I was seeing with PMAP_NEW.

Idea from Chuck Cranor.
1998-03-25 22:52:28 +00:00
mjacob db6aafad0b With new pmap stuff, the need for MSS3 goes away. 1998-03-25 18:33:41 +00:00
ross 3786a63843 1. Always link at the high address, now that we can use free ram below
the kernel on most platforms, including all of the entry-level platforms.
2. Kill the comments and options for load address selection.
3. Kill the default -g.
1998-03-25 02:16:41 +00:00
thorpej e6cf334f5c Keep a few things that reference kernel variables out of the namespace.
Add a check to see if libkvm is using this file.
1998-03-25 00:44:34 +00:00
thorpej 49408401a3 In pmap_destroy_lev1map(), fix a problem where the pmap's ASN wouldn't
be invalidated if the pmap is not active.  A rare thing (in fact, I'm
having trouble thinking of a scenario where it would happen), but it was
incorrect, nonetheless.
1998-03-24 22:02:44 +00:00
thorpej ea074f229a cdev_decl the "zs" device (which is really zstty). 1998-03-24 05:17:14 +00:00
thorpej 0105ff6f53 Update my DEC 3000/400 kernel config to reflect usage of the MI SCC driver.
Do not try this at home.  Caution: hot coffee is hot.
1998-03-24 05:16:30 +00:00
thorpej db00f6f709 Define attachments for the MI SCC driver - only hooks up to ioasic
for now.
1998-03-24 05:15:07 +00:00
thorpej a26a53fbbc Slight hack to allow the MI SCC driver to be used at cdev major 15
for testing purposes.  Normal kernels still get the Alpha-specific
SCC driver.
1998-03-24 05:13:59 +00:00
thorpej ee83014c4d Initial mostly-working ioasic attachment for the MI 8530 SCC driver. It is
enough to use as a console on my DEC 3000/400 (connected to a VT-520
terminal).

XXX The MI SCC driver needs serious changes to handle platforms which
have muliple SCC attachments (e.g. the Alpha port, which has an ioasic
attachment for TurboChannel systems and a gbus attachment for TurboLaser
systems).

XXX The MI SCC driver also needs changes to deal with the wacky (to put
it mildly) way the chips are wired up on the ioasic (on both TC Alphas
and DECstations).  These are going to come along later.
1998-03-24 05:12:00 +00:00
mjacob 4ccb969d0b Okay, handle the ALLOCNOW case by doing the appropriate adjustments
up front. Do the spacing arithmetic slightly differently.
1998-03-23 07:51:25 +00:00
mjacob 8e5970917e Redo it slightly so that S/G now appears to work a bit better. This
version has 2GB direct map starting at 2GB, and either 256MB or 1GB
S/G starting at 1MB. I've done *some* testing on this, but I'm not
quite happy with it yet.
1998-03-23 07:42:40 +00:00
mjacob 88c34f6f5f Spaicing for 32 bit ptes (dwlpx only, really) is 0x20, not 1 1998-03-23 07:09:12 +00:00
mjacob 66194d05bc Do a more complete job of figuring out what kind of DWLP? we have- figure
out how much s/g ram is available. Can't really use the 128K entry S/G
ram yet- but I'll fix that later. More importantly, add in a dwlpx_iointr
handler that will try and figure out what the DWLPX error is and at
least print out what is happening- I actually found it useful in S/G
entry debugging as it could tell me that I had some bad S/G entries.
1998-03-23 06:38:10 +00:00
mjacob 51ba315ba2 Slightly restructure interrupt handling to accomodate the addition
of a dwlpx_iointr vector.
1998-03-23 06:32:39 +00:00
mjacob 7c83bc0da6 Prepare for handling multisized S/G maps. Specify dwlpx_iointr function. 1998-03-23 06:31:54 +00:00
jonathan d3d99a28c9 Update #ifdef'ed-out changes from pmax :
* Add more #ifdef pmax/#endif, #ifdef alpha/#endif where appropriate.
    Config and heade files need more work (or replacement)
  change TK_NOTYET to HAVE_RCONS
  change commented-out /* && cn_tab.cn_screen */ to && raster_console()
  * Add DDB hooks.
  * Note where Alpha console ignores carrier on consoles.
  * Add pmax-derived console tty-size code inside HAVE_RCONS
  * Fold in gross pmax rcons-input hooks, inside HAVE_RCONS

Untested, but whitespace/ifdef only,  cross-compiles OK,
preprocessing shows no significat differences (famous last words)
1998-03-22 08:24:52 +00:00
thorpej a5260cbda0 Use atomic set/clear bits in pmap_activate()/pmap_deactivate(). 1998-03-22 07:27:54 +00:00
thorpej fcfe2f1539 Implement a set of `atomic' (using load-locked and store-conditional)
operations.  Initial set includes:

alpha_atomic_setbits_q()	set bits in a quad
alpha_atomic_clearbits_q()	clear bits in a quad
1998-03-22 07:26:32 +00:00
thorpej 9db8ae93c8 - The pmap now includes support for ASNs. We no longer need to flush
the TLB and I-cache in the SWITCH_CONTEXT macro.
- Right after switching to proc0's newly-created context at startup time,
  flush the TLB and I-cache; this is the only place where it's not done
  automatically.
- Fix a nasty bug in a critical section of cpu_switch(); change the
  pmap_activate -> SWITCH_CONTEXT -> pmap_deactivate sequence to
  pmap_deactivate -> pmap_activate -> SWITCH_CONTEXT.  This prevents
  erroneously marking a pmap inactive if switching to a process that
  shares it's address space (and thus its pmap) with the oldproc!  Noticed
  by Chris Demetriou.
1998-03-22 05:46:02 +00:00
thorpej c0cc1ed476 Implement support for Address Space Numbers, greatly reducing the number
of TLB and I-cache flushes, significantly speeding up context switches.

Once again, many thanks to Chris Demetriou and Ross Harvey for code
review and debugging assistance!
1998-03-22 05:41:37 +00:00
thorpej a8d86e5a7c Replace PMAP_ASNGEN_INVALID with PMAP_ASN_RESERVED. 1998-03-22 05:39:50 +00:00
mjacob 86b6520e41 more TS_WOPEN to tp->t_wopen changes 1998-03-21 23:36:19 +00:00
mycroft 0dae91d9af Eliminate uses of TS_WOPEN in hard-wired devices. 1998-03-21 22:52:59 +00:00