From: Gareth H. <gar...@ac...> - 2001-12-11 04:15:28
|
On Mon, Dec 10, 2001 at 07:29:47PM -0800, vo...@mi... wrote: > > > > I'm not sure but maybe this is related to the AGP aperture size as > > configured in the BIOS setup? > > I found out what it is, but I do not know yet what to do about it. > > Gareth - could you comment please ? Sure. > What happens is that Radeon has its internal view of physical space an > important part of which is the location of framebuffer - determined by > MC_FB_LOCATION register. Now it so happens that DRI sets this to start at > 0. Hence when I try to DMA from the card it thinks that any small physical > address is a place in video ram and not system memory. So any attempt to > DMA into pages with small physical addresses fail. > > I have tried resetting MC_FB_LOCATION to it's pci aperture as > recommended in the documentation. The problem is that at the minimum it > screws up display - so something else needs to be changed. Additionally I > get a hard lockup first chance DRI code kicks in. > > Gareth, in radeon_cp.c I see the following code: > > static void radeon_cp_init_ring_buffer( drm_device_t *dev, > =09=09=09=09 drm_radeon_private_t *dev_priv ) > { > =09u32 ring_start, cur_read_ptr; > =09u32 tmp; > > =09/* Initialize the memory controller */ > =09RADEON_WRITE( RADEON_MC_FB_LOCATION, > =09=09 (dev_priv->agp_vm_start - 1) & 0xffff0000 ); > > =09if ( !dev_priv->is_pci ) { > =09=09RADEON_WRITE( RADEON_MC_AGP_LOCATION, > =09=09=09 (((dev_priv->agp_vm_start - 1 + > =09=09=09=09 dev_priv->agp_size) & 0xffff0000) | > =09=09=09 (dev_priv->agp_vm_start >> 16)) ); > =09} > > > How do you know that you will never need to use system ram with small > physical address ? I have looked at agpgart and it allocates memory with=20 > alloc_page(GFP_KERNEL) and can, in principle, give you any kind of memory. > > Was there any particular reason for this setting ? I wouldn't know, I didn't write that code and I no longer have access to Radeon specs. Perhaps you should talk with Kevin Martin... -- Gareth |