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
msg02259/pgp00000.pgp
Description: PGP signature