[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