Re: OMAP remote proc bindings seem incomplete for OMAP3 and OMAP4

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 01/02/2018 02:59 PM, Adam Ford wrote:
> On Tue, Jan 2, 2018 at 2:17 PM, Suman Anna <s-anna@xxxxxx> wrote:
>> Hi Adam,
>>
>> On 12/27/2017 08:04 AM, Adam Ford wrote:
>>> I am struggling trying to get the DSP on an OMAP3630/3730 running.  I
>>> am looking at the remote proc functions and comparing omap, keystone
>>> and davinci's implementation, and it appears as if we need to set
>>> aside some shared memory as part of the DSP container which the omap3
>>> device tree is currently missing.
>>
>> What stack are you trying to run on the DSPs (DSP/Bridge or SysLink)?
>> DSP/Bridge driver was removed from mainline as it was not being
>> maintained, and SysLink support was completely out of tree.
> 
> I am open to whatever is the path of least resistance.  I was hoping
> to use the TI IPC tools which appear to use remoteproc, but I'll take
> whatever I can get.
> 
>>
>> Keystone remoteproc driver was added with DT support to begin with, and
>> I have recently extended the DT support to Davinci remoteproc driver.
>> The OMAP remoteproc driver was originally written for OMAP4 and beyond
>> for non-DT devices, and it still lacks the DT support on mainline
>> (blocked on various DT conversion dependencies - most of them are in and
>> it's currently blocked on the hwmod cleanup).
> 
> That makes sense.  I assumed this was being either orphaned or
> abandoned which is why I e-mailed.

No, it is not abandoned as the OMAP remoteproc driver will be reused for
the DSPs and IPUs (Dual-Cortex M3s or M4s) for the current AM57xx/DRA7xx
SoCs as well.

>>
>>> Adding these to the device tree looks like it's only part of it.  When
>>> I look at the davinci and keystone remote proc drivers, they are also
>>> looking for specific 'compatible' DSP's.  The omap3.dtsi file
>>> references the ti,omap3-c64, but I can't find any references to it, so
>>> it seems like there quite a bit missing to make remote proc work with
>>> the OMAP3.
>>
>> Yes, these compatibles were originally added as part of a PM support in
>> core mach-omap2 layers but without the necessary backing drivers
>> (remoteproc or otherwise) in commit 476b679a5d785 ("arm/dts: OMAP3+: Add
>> mpu, dsp and iva nodes"). Technically, the current compatible is
>> incorrect for OMAP4, as the OMAP4 DSP is not the same as the OMAP3 DSP.
> 
> Can the OMAP4 or L-138 DSP stuff be adapted to the OMAP35/36.37?  I
> know they are all technically different, but I don't know how
> different they are.

The clocking and reset SoC integration on OMAP-L138 is very different
from OMAP4. Ideally, any OMAP3 support would be reusing the OMAP
remoteproc driver because of the common underlying PRCM and hwmod
infrastructure. The Linux-side is relatively easy, since you only need
to hook in the appropriate platform pieces (reset, timers, boot vector
programming etc), but the DSP-side is difficult since the ISAs are all
different between OMAP3, OMAP4, OMAP-L138, so you need the necessary
support from the chosen RTOS. Any IPC modules/libraries would look
similar though because of the common functional behavior of OMAP
mailboxes, virtio transports.

> 
>> Do note that the PM init code was removed as part of the legacy non-DT
>> code cleanup in cb6675d6a868 ("ARM: OMAP2+: Remove legacy PM init").
>>
>>>
>>> Might someone (like Anna or someone from TI) have a code stub or a
>>> starting point that I might be able to use to try and finish the job
>>> of getting the DSP working with a modern kernel?
>>
>> I have the DT support on downstream TI kernels for OMAP4+ SoCs, and it
>> is easy to extend that to OMAP3 but it will depend on what stack you are
>> planning to use on the DSP-side. Most recent reference I have is
>> http://git.ti.com/gitweb/?p=rpmsg/rpmsg.git;a=shortlog;h=refs/heads/rpmsg-ti-linux-4.9.y.
>> I will be porting to 4.14 within the next 30 days and should be
>> available on the same tree.
> 
> Once the device tree side is complete, what would be required to make
> a simple 'hello world' demo to show the DSP is communicating?

A simple 'hello world' can be achieved if using the proper TI BIOS
versions, and adding a new platform to some of the existing rpmsg-based
RTOS-side IPC code bases present in public trees. I have to double
check, but I believe the latest TI tools (SYS/BIOS, XDC etc) have
dropped the support for the C64P family (DSPs present in OMAP3, OMAP4
and OMAP5), so you would have to play around with some older versions of
the RTOS and IPC code bases to get going on OMAP3.

regards
Suman

> 
>>
>> Do note that the rpmsg transport was never added to the OMAP3 DSP so
>> extending OMAP remoteproc driver with virtio rpmsg support will require
>> some work on the DSP-side s/w. Also, DSP/Bridge stack was never ported
>> to use the OMAP remoteproc driver either. But if it is only the DT
>> portions that you are looking for, the above tree should have the
>> necessary stuff for you to get started.
> 
> We sell System-On-Modules based on the OMAP35, DM37 and L-138.  At
> this point, any DSP functionality is better than nothing.  We have
> customers who want to buy SOM's but are questioning the age and
> support since much of the DSP and 3D acceleration support seems to
> have stopped on the TI side.  Any support you can provide is greatly
> appreciated.
> 
> adam
>>
>> regards
>> Suman

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux