Re: Physical mappings in VSTa

From: Andrew Valencia <vandys_at_nospam.org>
Date: Mon Oct 31 1994 - 07:38:59 PST

[jeremy@sour.sw.oz.au (Jeremy Fitzhardinge) writes:]

>I've managed to get mappings working from BIOS32 ROMs, so I can detect
>the bios, call the BIOS32 functions to find the PCI bios, and call that
>to find the NCR53c810 chip. I hope to get some real functionality
>going in the next few days.

Good job! PCI support would be nice, and doing it all from a user-level
server is the microkernel way to do it.

>I modified the kernel mmap() to allow a user process to do fixed mappings
>of physical memory. There seems to be a problem however. For normal
>mmaps, the first arg (address) is the address to be mapped to (in the
>case of MAP_FIXED or ignored otherwise), and the offset arg is the place
>in the object being mapped where the mapping is coming from.

Ugh. Poor thinking on my part.

>In the case of MAP_PHYS, the address arg is the physical address.
>As a quick hack I used offset as the virtual address, but it really
>should be the other way around. I could only find a couple of uses
>for MAP_PHYS mappings in the console driver, so it wouldn't be hard to
>fix at this stage. Also, libc could be modified to pass the address
>in both the vaddr and the offset unless in the case of MAP_PHYS, unless
>MAP_FIXED is set, on the assumption that MAP_FIXED|MAP_PHYS users
>know about the modified kernel.

Let's just move the parameter where it belongs and fix the places which use
physical mapping. For the base distribution that's the console. I think a
couple folks have written code like this, too. This message is your
warning! :-)

                                                        Andy
Received on Mon Oct 31 06:19:31 1994

This archive was generated by hypermail 2.1.8 : Thu Sep 22 2005 - 15:12:10 PDT