Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 15 Apr 1997 04:40:36 -0500 (CDT)
From:      "Daniel M. Eischen" <deischen@iworks.InterWorks.org>
To:        dg@root.com
Cc:        krygier@kph.uni-mainz.de, questions@FreeBSD.ORG
Subject:   Re: special memory device
Message-ID:  <199704150940.EAA15971@iworks.InterWorks.org>

next in thread | raw e-mail | index | archive | help
> >The problem I have, is that if I create a driver for this chip,
> >how do I ask the PCI support code for 4 consecutive 16MB regions
> >of the PCI bus?  From what I can tell, the PCI code will only let
> >you map an address space as it is defined in the PCI configuration
> >space registers.  For the Tundra Universe chip, the registers
> >that configure the special PCI slave image are not in the PCI         
> >configuration space.  
>
>    The obvious question this raises is: How do you do address space conflict
> resolution if you ignore the assignments made by the PCI BIOS?

Right.  There should probably be a resource list to manage these
addresses.  Drivers would have to call a set of common functions
in order to allocate PCI address space.  The Tundra Universe chip
shares the PCI bus with a DEC 21240 and an Adaptec 7880, so I can't
allocate an address range without ensuring it doesn't conflict.

>    It is possible to map any arbitrary physical address range when not using
> the PCI map routine. In fact if you use a device driver to do this (via the
> device mmap interface, which uses the VM "device pager"), the PCI mapping code
> wouldn't be involved in any case. For examples of this, look at the handling
> of /dev/vga (ttyv0...syscons.c...scmmap()). Very trivial.

Ahh, thanks for the pointer :-)

Dan Eischen
deischen@iworks.InterWorks.org



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199704150940.EAA15971>