about_radeon_dma

Jerome Glisse j.glisse at gmail.com
Thu Jun 14 07:46:30 PDT 2012


On Thu, Jun 14, 2012 at 12:04 AM, llittle了了 <sizhiying at hotmail.com> wrote:
> Yes, I transplant the radeon_driver from 64bit_kernel to a mini 32bit_os.
> The purpose is to open radeon_benchmark  or Xorg in the mini_32bit_os.
> So, I think ring_test success means GPU  work correctly and smmothly.
>
> But ,my ring_test in the mini_32bit_os does not success. When I read scratch
> register, it`s not the value wrote into the memory location.So, I think the
> address space does not map correct.
>
>>> |--系统内存--|--显存--|--GTT内存--|
>>> 0           256M     384M        896M
>
> Such memory alloction in my mini32bit_os has been build up. There are
> differences between linux-kernel and my mini32bit_os :
> first,  mymini32bit_os does not have TTM;
> second, the mini32bit_os use 0x8000,0000-----0x9000,0000 virtual address
> which map to 0x0----0x1000,0000 physical address . While linux-kernel use
> 0x9800,0000,fc24,0000----0x9800,0000,ff00,0000 CPU vritual address which map
> to 0x0000,0000,fc24,0000----0x0000,0000,ff00,0000 physical address.I have 2g
> memory.
>
> I also use gart_table to tell GPU my mini32bit_os address. set_gart_pages.
> But ring_test still does not work. If we can use gart_table to tell GPU the
> ring_buffer memory location, I alloc the ring_buffer from the low 16M
> memory, then fill the gart_table, GPU would konw that address and ring_test
> would sucess. But, when I use the low 16M memory for ring_buffer, ring_test
> faile d. I have reserved the low 16M memory  at the boot time.
>
> That is the exactly confused me. Why? I move ring_buffer any other palace,
> ring_test will not work?
>
>

Virtual address space does not matter for the GPU, what you need to
program is physical page address into GPU gart.

Cheers,
Jerome


More information about the dri-devel mailing list