about consistent_init function
Chan Kim
ckim at etri.re.kr
Fri May 30 05:04:11 EDT 2014
Hi, all
Sadly nobody has answered to my email but I just want to let you know my problem was fixed. :)
I just moved the frame buffer address to kernel area (from 0x69E00000 to 0xDFE00000).
This way there was no problem accessing that address (maybe the demand paging worked? I didn't check it with print yet)
Now the dma_alloc_writecombine works both for SD card driver and framebuffer driver.
Thanks!
Chan
보낸 사람 : "Chan Kim" <ckim at etri.re.kr>
보낸 날짜 : 2014-05-22 21:51:51 ( +09:00 )
받는 사람 : kernelnewbies at kernelnewbies.org <kernelnewbies at kernelnewbies.org>
참조 :
제목 : Re: about consistent_init function
Dear all,
As I said, I'm trying to use consistent memory (from ARM) to our sparc board.
after I run the consistent_init, (which runs after the paging init, as one of the initcalls), the skeleton of the page table is setup.
At that time the pte values for the start of consistent memory (used for dma_alloc_writecombine) is all zero.(not allocated to any physical memory). I read the pte values for the buffer.
But during the frame buffer driver initialization, the code accesses the frame buffer area and causes page fault.
During the fault process, when I probe the page table for the buffer address(virtual address), it now has the pte value directing to some physical memory area. When did linux assign this PFN?
I would be grateful if someone explain it to me.
(by the way I assigned consistent memory below 0xc00000 and blocked BUG_ON(base < VMALLOC_END); check)
Thanks,
Chan
보낸 사람 : "Chan Kim"
보낸 날짜 : 2014-05-22 13:57:23 ( +09:00 )
받는 사람 : kernelnewbies at kernelnewbies.org
참조 :
제목 : about consistent_init function
Hello,
In http://lxr.free-electrons.com/source/arch/arm/mm/dma-mapping.c?v=3.3#L162, in line 208,
Could anybody kindly explain why it increases the variable 'base' by PMD_SIZE?
Is the consistent memory chunck initialized by PMD_SIZE?
It seems to me the consistent_init allocates only the skeleton of the page table (with final pte entries empty) for the consistent memory region.
Then when is the actual pte entries filled? In ARM how does this work?
I'm trying to allocate memory for dma (uncached region) for our sparc processor using dma_alloc_writecombine which is from arm.
Is this a correct approach? (dma_alloc_coherent seems to be for smaller size), I need almost 2MB buffer.
Any help or suggestion will be appreciated.
Thanks,
Chan
_______________________________________________
Kernelnewbies mailing list
Kernelnewbies at kernelnewbies.org
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
_______________________________________________
Kernelnewbies mailing list
Kernelnewbies at kernelnewbies.org
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
More information about the Kernelnewbies
mailing list