Hi,
We are trying to port some PRU code for BBB from Linux 3.8 to 4.4. In the process, we want to use the new rpmsg framework. The sample code in the PRU software support package (pru-software-support-package/examples/am335x/PRU_RPMsg_Echo_Interrupt0) works fine, but we can't merge it with our application because we use the ram at 0x0000 in DRAM0, and as soon as we rpmsg_send anything, our working RAM is corrupted.
We'd like change the location rpmsg uses for vrings. We've tracked it down to resource_table_0.h, with the comment "will be populated by host", but we haven't a clue how to tell Linux how to populate the vring da values.
Can someone show us how to change the base address of the RAM that rpmsg uses for vrings, or how rpmsg is used with applications that use DRAM0 memory?
Robert
From resource_table_0.h:
struct my_resource_table resourceTable = {
1, /* Resource table version: only version 1 is supported by the current driver */
2, /* number of entries in the table */
0, 0, /* reserved, must be zero */
....
/* the two vrings */
{
0, //da, will be populated by host, can't pass it in
16, //align (bytes),
PRU_RPMSG_VQ0_SIZE, //num of descriptors
0, //notifyid, will be populated, can't pass right now
0 //reserved
},
{
0, //da, will be populated by host, can't pass it in
16, //align (bytes),
PRU_RPMSG_VQ1_SIZE, //num of descriptors
0, //notifyid, will be populated, can't pass right now
0 //reserved
},