Subject: Re: MicroVAX I: in need of modern OS.
To: Anders Magnusson <ragge@ludd.luth.se>
From: Brian D Chase <bdc@world.std.com>
List: port-vax
Date: 02/05/1999 12:42:32
On Fri, 5 Feb 1999, Anders Magnusson wrote:

> MicroVAX II uses MTPR for console. Try:
> >>> D/I 23 40
> And see if something shows up on the screen.

That results in the "@" character being displayed immediately after the
"0" in 40.  So maybe we're okay with that :-)

> > Without any mapping registers, how do the CPU and DMA I/O devices agree
> > upon locations for transferring blocks of data?

> Actually, the principle for this is simple: All I/O devices are able to
> access all of the computer internal memory. A 1:1 mapping (as in this case)
> is much simpler to deal with than the mapping registers when you have
> a smaller address space for the bus than the internal memory.

Okay, I can understand that concept.  Basically you never have to worry
about the I/O devices having their DMA buffers located in a chunk
of physical memory which is outside of their reach.  That makes sense.
Since the MicroVAX I is limited to a 22bit address space, there was no
need to handle cases where DMA buffers could be located outside of the
22bit Q-bus address space.

How is the setup of DMA buffers handled in NetBSD/vax on Q-bus systems?
Do you reserve physical address space and keep virtual memory mapping away
from those addresses, or do you set them up in contiguous chunks of
virtual memory? (Which if I understand correctly, can be non-contiguous
chunks of physical memory).

[Sorry about dragging everybody through Operating Systems 101].

-brian.
---
Brian "JARAI" Chase | http://world.std.com/~bdc/ | VAXZilla LIVES!!!