Hi Robbie,

 I believe that the "physical" address that is specified by the elf file
is actually the physical location within the file.

Given a capability to a frame, there is a system call for obtaining the
physical address. System call code is automatically generated, so you
will need to look in the build or stage directories:

stage/arm/zynq7000/include/interfaces/sel4_client.h:306:seL4_ARM_Page_GetAddress(seL4_ARM_Page
 service)

The best way to handle DMA is to allocate and map a frame, then use the
GetAddress call to determine the physical address of the underlying
memory.


  - Alex



On Thu, 2015-12-03 at 14:59 -0500, Robert VanVossen wrote:
> Hello,
>
> I am attempting to integrate the Xilinx drivers, provided through their SDK,
> with seL4 on the Zynq7000.
> In the root thread, I created a virtual mapping for the SD Card peripheral, 
> and
> I pass that virtual address into the driver, so that it is reading and writing
> to it.
>
> The controller has a built-in DMA that gets used for data transfer. I created 
> a
> buffer in the root thread's virtual space to pass to the DMA, but it needs a
> physical address. I calculated the virtual/physical offset from the physical 
> and
> virtual addresses for the application that are given by the elfloader, but 
> that
> didn't seem to be the correct mapping.
>
> Is there a good way to get that mapping, either from within the application
> itself or from the kernel before hand?
>
> Thanks,
> Robbie VanVossen
> DornerWorks
>
> _______________________________________________
> Devel mailing list
> [email protected]
> https://sel4.systems/lists/listinfo/devel



________________________________

The information in this e-mail may be confidential and subject to legal 
professional privilege and/or copyright. National ICT Australia Limited accepts 
no liability for any damage caused by this email or its attachments.

_______________________________________________
Devel mailing list
[email protected]
https://sel4.systems/lists/listinfo/devel

Reply via email to