You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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:
here we get the shared memory address from dts overlay;
next, we use the same value for physical address here;
later, in the sample, we use these addresses to open an I/O region here;
(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:
/*
* second value for pa register is not used,
* is just required by devicetree 'reg' property
*/
reg = <0x1bef0000 0x110000>, <0x8fef0000 0x110000>;
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.
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 or tty were not created, because for the payload buffer the address conversion failed.
The text was updated successfully, but these errors were encountered:
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: