Virtual Address to Physical Address

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

 

I have Linux ported to a Custom Arm platform. I have my own memory manager for my ARM device driver (its kinda requisite for my target application)

 

My memory manager obtains chucks of memory from its own larger pool (a global array actually) and distributes it to my application as and when required.

I have declared a large array called local_mem and defined it as follows:-

 

Unsigned char local_mem[MEM_SIZE] ATTRIB_SECTION(".rbuf");

 

Arm processor has an external SDRAM and this memory comes from there. (Heap sits there I suppose)

 

Now I have a specific DMA operation to be done from an external FIFO to the local memory I have declared here. However, all the addresses visible to my code are virtual and I need to supplement the DMA master with the physical address. I am not sure how to obtain the physical address for the virtual address. The global memory pool (or array) has an address of 0xC281fb200 (virtual) while the SDRAM is a 4MB memory starting from 0x10000000.

 

Could someone kindly throw some light on as to how do I get the physical address corresponding to this address. Any tips or pointers would also be of great help!

 

Rgds

Jitesh Shah

**********************************************************************

This email and any files transmitted with it are confidential and

intended solely for the use of the individual or entity to whom they

are addressed. If you have received this email in error please notify

helpdesk@xxxxxxxxxxx

**********************************************************************

 


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux