Subject: Re: MicroVAX I: in need of modern OS.
To: Brian D Chase <email@example.com>
From: Anders Magnusson <firstname.lastname@example.org>
Date: 02/05/1999 21:50:11
> 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 :-)
Great! Now it's only for you to load a kernel :-)
> > > 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.
Exactly! It works as the BI bus does in later system; each device can address
the whole internal memory of the machine.
> 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).
No, there are a mapping system: Each page in the Unibus/Qbus address space
can be mapped to any physical page in memory. A Unibus consists of 512
map registers, (actually 496, but that's another story) mapping the whole
Unibus address space onto any memory location. So, the first page in
the 256K unibus address space can be mapped to some physical memory
address, and the second page can be mapped to somewhere completely different.