Yes I did changed in Platform_info.c
/*
* Linux requires the ALIGN to 0x1000(4KB) instead of 0x80
*/
#define VRING_ALIGN 0x1000
/*
* Linux has a different alignment requirement, and its have 512 buffers instead of 32 buffers for the 2 ring
*/
#define VRING0_BASE 0xBF800000
#define VRING1_BASE 0xBF880000
/* IPI_VECT here defines VRING index in MU */
#define VRING0_IPI_VECT 0
#define VRING1_IPI_VECT 1
#define MASTER_CPU_ID 0
#define REMOTE_CPU_ID 1
....
.......
....
struct hil_proc proc_table []=
{
/* CPU node for remote context */
{
/* CPU ID of master */
MASTER_CPU_ID,
/* Shared memory info - Last field is not used currently */
{
(void*)SHM_ADDR, SHM_SIZE, 0x00
},
/* VirtIO device info */ /*struct proc_vdev*/
{
2, (1<<VIRTIO_RPMSG_F_NS), 0, /*num_vring, dfeatures, gfeatures*/
/* Vring info */ /*struct proc_vring*/
{
/*[0]*/
{ /* TX */
NULL, (void*)VRING0_BASE/*phy_addr*/, 512/*num_descs*/, VRING_ALIGN/*align*/,
/*struct virtqueue, phys_addr, num_descs, align*/
{
/*struct proc_intr*/
VRING0_IPI_VECT,0,0,NULL
}
},
/*[1]*/
{ /* RX */
NULL, (void*)VRING1_BASE, 512, VRING_ALIGN,
{
VRING1_IPI_VECT,0,0,NULL
}
}
}
},
/* Number of RPMSG channels */
1, /*num_chnls*/
/* RPMSG channel info - Only channel name is expected currently */
{
{"rpmsg-openamp-demo-channel"} /*chnl name*/
},
/* HIL platform ops table. */
&proc_ops, /*struct hil_platform_ops*/
/* Next three fields are for future use only */
0,
0,
NULL
},
/* CPU node for remote context */
{
/* CPU ID of remote */
REMOTE_CPU_ID,
/* Shared memory info - Last field is not used currently */
{
(void*)SHM_ADDR, SHM_SIZE, 0x00
},
/* VirtIO device info */
{
2, (1<<VIRTIO_RPMSG_F_NS), 0,
{
{/* RX */
NULL, (void*)VRING0_BASE, 512, VRING_ALIGN,
{
VRING0_IPI_VECT,0,0,NULL
}
},
{/* TX */
NULL, (void*)VRING1_BASE, 512, VRING_ALIGN,
{
VRING1_IPI_VECT,0,0,NULL
}
}
}
},
/* Number of RPMSG channels */
1,
/* RPMSG channel info - Only channel name is expected currently */
{
{"rpmsg-openamp-demo-channel"}
},