注:必须是Linux/arm 3.0以上内核才支持RPMSG,在此使用的是.config - Linux/arm 3.0.31 Kernel Configuration。(soure code from blaze_tablet 4AJ.2.1 http://omappedia.org/wiki/4AJ.2.1_OMAP4_Jelly_Bean_Release_Notes)
Kernel Built-In
In menuconfig:
export ARCH=arm make menuconfig
Make sure that the following options are set. Look in Build Customization section for customizing your build.
System Type ---> TI OMAP Common Features ---> <*> OMAP Virtio-based remote processor messaging support [*] OMAP RPMSG Recovery -*- Mailbox framework support (256) Mailbox kfifo default buffer size (bytes) -*- IOMMU support for OMAP devices [ ] Export OMAP IOMMU internals in DebugFS (0x0) Physical carveout memory pool size (Byte) Device Drivers ---> <*> Multimedia support ---> <*> TI TILER support ---> Device Drivers ---> <*> Generic Hardware Spinlock framework <*> OMAP Hardware Spinlock device [*] Autosuspend support for remoteproc [*] OMAP remoteproc support <*> Remote Processor Resources [*] OMAP remoteproc watchdog timer <*> Virtio-based remote processor messaging bus <*> rpmsg OMX driver <*> rpmsg resource manager <M> An rpmsg client sample <M> An rpmsg server sample
2、配置Linux内核驱动使得支持RPMSG Tesla(see also:http://omappedia.org/wiki/RPMsg_Tesla)
In order to enable Tesla support, select the OMAP remoteproc support for DSP option in the Device Drivers section in menuconfig
export ARCH=arm
make menuconfig
Device Drivers --->
[*] Autosuspend support for remoteproc
[*] OMAP remoteproc support
[*] OMAP remoteproc support for IPU
[*] OMAP remoteproc support for DSP
3、编译内核,重启blaze_tablet板,串口出现如下打印则说明内核已经支持DSP。
[ 0.250335] omap_rproc_get_pool: dsp - static memory is unavailable: 0x0, 0x0
[ 0.251373] omap_rproc_get_pool: ipu - carveout memory is unavailable: 0x0, 0x0
[ 0.251373] omap_rproc_get_pool: ipu - carveout memory is unavailable: 0x0, 0x0
[ 0.275665] omap-rproc omap-rproc.0: dsp is available
[ 0.276275] omap-rproc omap-rproc.1: ipu is available
[ 0.276275] omap-rproc omap-rproc.1: ipu is available
[ 1.450378] omap-iommu omap-iommu.0: ducati registered
[ 1.450378] omap-iommu omap-iommu.1: tesla registered
[ 1.450378] omap-iommu omap-iommu.1: tesla registered
[ 1.632354] omap-rproc omap-rproc.1: powering up ipu
[ 1.632843] virtio_rpmsg_bus virtio0: rpmsg backend virtproc probed successfully
[ 1.632843] virtio_rpmsg_bus virtio1: rpmsg backend virtproc probed successfully
[ 1.632843] omap-rproc omap-rproc.0: powering up dsp
[ 1.634368] virtio_rpmsg_bus virtio2: rpmsg backend virtproc probed successfully
[ 1.632843] virtio_rpmsg_bus virtio0: rpmsg backend virtproc probed successfully
[ 1.632843] virtio_rpmsg_bus virtio1: rpmsg backend virtproc probed successfully
[ 1.632843] omap-rproc omap-rproc.0: powering up dsp
[ 1.634368] virtio_rpmsg_bus virtio2: rpmsg backend virtproc probed successfully
[ 8.551696] omap-rproc omap-rproc.0: rproc_loader_cont: failed to load tesla-dsp.bin
下一步则增加tesla-dsp.bin映像并使之加载启动OK,待续。。。