[meta-xilinx] remoteproc resource table TYPE_MMU entries
Edward Wingate
edwingate8 at gmail.com
Wed Oct 14 17:22:50 PDT 2015
When using remoteproc, there is a resource table that is defined in
the remote processor code that can contain TYPE_MMU entries (along
with carveout, trace and vring entries). For example, I have these in
my table at the moment:
.uart0 = { TYPE_MMU, 1, STDOUT_BASEADDRESS, 0, 0xc02, "uart" },
.scu = { TYPE_MMU, 2, XPS_SCU_PERIPH_BASE, 0, 0xc02, "scu" },
I just lifted these from ug978, but don't really understand what
they're for or when I would need to add more. When exactly should I
be using/adding more of these TYPE_MMU entries? When peripherals are
to be shared between Linux and the remote OS?
I just see that these entries are passed into an enable_tlb() function
that sets the given flags (0xc02) in the TLB entry for the
peripheral's address.
And it doesn't look like Linux ever processes TYPE_MMU entries. This
is the only reference I can find to MMU entries, and they aren't
handled anywhere:
https://github.com/Xilinx/linux-xlnx/blob/master/drivers/remoteproc/remoteproc_core.c#L719
There also isn't any corresponding data structure for MMU entries on
the Linux side like there are for carveouts, devmem, trace, etc:
https://github.com/Xilinx/linux-xlnx/blob/master/include/linux/remoteproc.h#L167
https://github.com/Xilinx/linux-xlnx/blob/master/include/linux/remoteproc.h#L205
Does anyone know for a fact that TYPE_MMU entries are only used on the
remote processor?
Thanks for your help.
More information about the meta-xilinx
mailing list