Add support for different base address of the shared mem in the memory map of each core in openamp_rsc_table sample #84168
Labels
area: IPC
Inter-Process Communication
area: Open AMP
Enhancement
Changes/Updates/Additions to existing features
Is your enhancement proposal related to a problem? Please describe.
Now, in
open_amp_rsc_table
sample we support only the device that have the same value for physical and virtual address.See:
(see metal_io_init() implementation, in libmetal).
Describe the solution you'd like
We need to give both the physical and virtual address of the device, in case they are different.
So, if the 2 addresses have different values, use in dts overlay the following
reg
property:In
openamp_rsc_table
sample, will get the physical address from the second register block, in case it exists, otherwise will be the first register block, as it is now.Here are the changes need it:
Additional context
For all the boards that have support now for
openamp_rsc_table
sample there will be no changes needed.When adding new board if the device address is different than the physical address we need to add 2 register blocks:
The first one is the address of the device and the size of shared memory, as before.
Second element is the physical address of the device. The second value for pa register is not used,
is just required by devicetree 'reg' property.
The problem was found while trying to add support for i.MX8ULP where the physical and virtual address for DSP are different.
The endpoints for
sample_client
ortty
were not created, because for the payload buffer the address conversion failed.The text was updated successfully, but these errors were encountered: