1. Go to your PetaLinux project:
$ cd <plnx_proj>
2. Build the PetaLinux project:
$ petalinux-build
3. Boot the RPU firmware built with Xilinx ® Vitis with SD boot. Following is a BIF file example:
the_ROM_image:
{
[fsbl_config] a53_x64
[bootloader] <plnx_proj>/images/linux/zynqmp_fsbl.elf
[destination_device=pl] <plnx_proj>/images/linux/system.bit
[destination_cpu=pmu] <plnx_proj>/images/linux/pmufw.elf
[destination_cpu=r5-0] <RPU firmware>
[destination_cpu=a53-0, exception_level=el-3, trustzone] <plnx_proj>/images/linux/arm/bl31.elf
[destination_cpu=a53-0, exception_level=el-2] <plnx_proj>/images/linux/u-boot.elf
}
4. On the APU Linux target console, run the demo applications rpmsg-echo-ping-shared , matrix_multiply-shared , and rpc_demod-shared . This process produces output similar to the following:
root@xilinx-zcu102-2019_1:~# rpmsg-echo-ping-shared
metal: info: metal_uio_dev_open: No IRQ for device 3ed20000.shm.
Successfulinitializing rpmsg vdev
Try to create rpmsg endpoint.
Successfully created rpmsg endpoint.
ly open shm device.
Successfully added shared memory
Successfully probed IPI device
Successfully initialized Linux r5 remoteproc.
Successfully initialized remoteproc
Calling mmap resource table.
Successfully mmap resource table.
Successfully set resource table to remoteproc.
Creating virtio...
Successfully created virtio device.
initializing rpmsg vdev
echo test: sent : 488
received payload number 471 of size 488
**********************************
Test Results: Error count = 0
**********************************
Quitting application .. Echo test end
rpmsg_channel_deleted
WARNING rx_vq: freeing non-empty virtqueue
WARNING tx_vq: freeing non-empty virtqueue
root@Xilinx-ZCU102-2019_1:~#
# matrix_multiply-shared
...
CLIENT> Matrix multiply: sent : 296
CLIENT> Quitting application .. Matrix multiplication end
CLIENT> **********************************
CLIENT> Test Results: Error count = 0
CLIENT> **********************************
CLIENT> rpmsg_channel_deleted
WARNING rx_vq: freeing non-empty virtqueue
WARNING tx_vq: freeing non-empty virtqueue
root@Xilinx-ZCU102-2019_1:~#
# rpc_demod-shared
login[1900]: root login on 'ttyPS0'
root@Xilinx-ZCU102-2019_1:~# proxy_app-openamp
...
Master> Remote proc resource initialized.
Master> RPMSG channel has created.
Remote>FreeRTOS Remote Procedure Call (RPC) Demonstration
Remote>***************************************************
Remote>Rpmsg based retargetting to proxy initialized..
Remote>FileIO demo ..
Remote>Creating a file on master and writing to it..
… …
Remote>Repeat demo ? (enter yes or no)
no
Remote>RPC retargetting quitting ...
Remote> Firmware's rpmsg-openamp-demo-channel going down!
Master>
RPC service exiting !!
Master> sending shutdown signal.
WARNING rx_vq: freeing non-empty virtqueue
WARNING tx_vq: freeing non-empty virtqueue
root@Xilinx-ZCU102-2019_1:~#