Hi Philip!

> Sorry if this is repeat: haven't seen my original show up in 12 hours.
> 
> I have a question about "what if physical memory is fragmented"?
> The AGIPIOC_ALLOC call returns a 'physical' address.

Not always. Only if the alloc type > 0 (which is chip specific). Otherwise,
you're not getting a physical address (you'll see the driver don't even set
this field). In the case of i8xx where it is used (maybe others as well),
there is usually a limit to the size (e.g. one page).

You have to remember that this extension was only introduced to help out
with some hardware where X requires a physical pointer (e.g. hardware cursor
/ hardware status page with i8xx)

> However, I cant imagine that it is easy to guarantee 64 megs of contiguous
> physical RAM allocation. So something seems wrong with my assumption.

In the case of generic allocs (type 0), memory is allocated in chunks of
single pages, so fragmentation is not an issue.

> So, what should be the behaviour of my agp implementation, if contiguous
> physical memory is not available?

Then you're screwed. You need at least a couple of pages of physical
contigious memory for the GTT (or GATT if you wish) table. The entries only
needs to be single pages (see agp_generic_alloc (otoh, might be
spelled differently). The rest is virtual addresses (e.g. the array in which
the allocated pages is stored, etc.)

-- 

Regards
 Abraham

There is no education that is not political.  An apolitical
education is also political because it is purposely isolating.

__________________________________________________________
 Abraham vd Merwe - 2d3D, Inc.

 Device Driver Development, Outsourcing, Embedded Systems

  Cell: +27 82 565 4451         Snailmail:
   Tel: +27 21 761 7549            Block C, Antree Park
   Fax: +27 21 761 7648            Doncaster Road
 Email: [EMAIL PROTECTED]         Kenilworth, 7700
  Http: http://www.2d3d.com        South Africa

Attachment: msg02259/pgp00000.pgp
Description: PGP signature

Reply via email to