Subject: Re: mapping PCI memory
To: Emmanuel Dreyfus <manu@NetBSD.org>
From: Manuel Bouyer <firstname.lastname@example.org>
Date: 12/31/2003 15:47:54
On Fri, Dec 26, 2003 at 10:58:37PM +0100, Emmanuel Dreyfus wrote:
> For COMPAT_DARWIN, I need to map all the memory from the video board to
> the display server.
> As far as I understand the problem, I need to use bus_space_mmap for all
> the pages of memory that should be mapped. This leaves me with several
> 1) I need a tag for a given display. On macppc, wsdisplay is child of
> ofb, and ofb_softc has two tags:
> pci_chipset_tag_t sc_pc;
> pcitag_t sc_pcitag;
> What is the revelant tag here? I'd say pcitag_t, is that right?
> 2) Is there a way of finding the tag from wsdisplay without the
> assumption that it's a child of ofb (on i386, it's a child of vga, for
> 3) Do I have a way of discovering the amount of memory in the video
> board? It seems acheivable only if I assume it's a PCI board, do we have
> more general mecanisms?
> 4) bus_space_mmap will want a base addresse, where can I find this?
> 5) Once I have everything, I shall call bus_space_mmap for each page. Do
> we have another function that would do the job for the whole space?
> Sorry if that's dumb questions, I'm not used at all to bus_space_*
I've not been thinking about this much, but I think the right place for
this would be in the VGA driver. The way to map the video memory is probably
Manuel Bouyer <email@example.com>
NetBSD: 23 ans d'experience feront toujours la difference