All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnaud Pouliquen <arnaud.pouliquen@st.com>
To: Vinod Koul <vkoul@kernel.org>,
	Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Cc: xiang xiao <xiaoxiang781216@gmail.com>,
	Srinivas Kandagatla <srinivas.kandagatla@linaro.org>,
	Daniel Baluta <daniel.baluta@gmail.com>,
	Kumar Gala <kumar.gala@linaro.org>,
	"andriy.shevchenko@intel.com" <andriy.shevchenko@intel.com>,
	"alsa-devel@alsa-project.org" <alsa-devel@alsa-project.org>,
	"tiwai@suse.de" <tiwai@suse.de>,
	"linux-remoteproc@vger.kernel.org"
	<linux-remoteproc@vger.kernel.org>,
	Bjorn Andersson <bjorn.andersson@linaro.org>,
	"liam.r.girdwood@linux.intel.com"
	<liam.r.girdwood@linux.intel.com>,
	"broonie@kernel.org" <broonie@kernel.org>,
	Xiang Xiao <xiaoxiang@xiaomi.com>,
	"sound-open-firmware@alsa-project.org"
	<sound-open-firmware@alsa-project.org>,
	"wendy.liang@xilinx.com" <wendy.liang@xilinx.com>,
	Alan Cox <alan@linux.intel.com>
Subject: Re: [alsa-devel] [v4,00/14] ASoC: Sound Open Firmware (SOF) core
Date: Thu, 21 Feb 2019 11:42:25 +0100	[thread overview]
Message-ID: <1af21f7e-1ea1-98a0-cf6d-74d0f4e5b186@st.com> (raw)
In-Reply-To: <20190221043925.GF2736@vkoul-mobl>

Hello,

On 2/21/19 5:39 AM, Vinod Koul wrote:
> Hi Pierre,
> 
> On 19-02-19, 09:55, Pierre-Louis Bossart wrote:
>> 
>> On 2/19/19 9:09 AM, xiang xiao wrote:
>> > On Tue, Feb 19, 2019 at 5:49 PM Srinivas Kandagatla
>> > <srinivas.kandagatla@linaro.org> wrote:
>> > > 
>> > > 
>> > > On 18/02/2019 20:03, Xiang Xiao wrote:
>> > > > Should we utilize official IPC frameowrk instead reinverting the wheel?
>> > > > 1.Load firmware by drivers/remoteproc
>> > > >     https://www.kernel.org/doc/Documentation/remoteproc.txt
>> > > > 2.Do the comunication through drivers/rpmsg
>> > > >     https://www.kernel.org/doc/Documentation/rpmsg.txt
>> > > > Many vendor(TI, Qualcomm, ST, NXP, Xilinx...) migrate to remoteproc/rpmsg, why Intel provide an other IPC mechanism?
>> > > It definitely makes more sense to use rpmsg for Generic IPC driver here.
>> > > 
>> > > Qualcomm DSP audio drivers (non SOF) already use rpmsg. This will
>> > > definitely help everyone in future while immigrating to SOF.
>> > > 
>> > Actually, Xiaomi also build DSP audio driver on top of rpmsg, but
>> > fully integrate with the ASoC topology framework, and the firmware is
>> > base on FreeRTOS and OpenMAX.
>> > SOF initiative is very good and exciting, our team members(include me)
>> > spend a couple weeks to study the current code base on both firmware
>> > and kernel side, we even port SOF to our DSP/MCU and make it run, but
>> > I have to point out that:
>> > SOF IPC is too simple and rigid, tightly couple with Intel platform
>> > and audio domain, which make:
>> >     a.It's difficult to integrate with other vendor SoC, especially if
>> > other vendor already adopt remote/rpmsg(this is already a trend!).
>> >     b.It's difficult to add other IPC services for example:
>> >        i.Audio DSP talk to power MCU to adjust clock and voltage
>> >        ii.Export ultrasonic distance measurement to IIO subsystem
>> 
>> The IPC scheme suggested in this patchset is only a first pass that works on
>> 3 generations on Intel platforms + the QEMU  parts. There are no claims that
>> the current solution is set-in-stone, and this is already an area where
>> things are already changing to support notifications and low-power
>> transitions.
>> 
>> There will clearly be evolutions to make the IPC more flexible/generic, but
>> we've got to start somewhere and bear in mind that we also have to support
>> memory-constrained legacy devices where such generic frameworks aren't
>> needed or even implementable. Some of your proposals such as changing
>> power/clocks with a firmware request aren't necessarily possible or
>> recommended on all platforms - i can already hear security folks howling,
>> this was already mentioned in the GitHub thread.
> 
> Rather than evolve the IPC, i would say it makes more sense that we
> "reuse" existing upstream frameworks.. As given below by xiang
> this seems to have support for RTOSes (see point 4 below) and looking at
> below it seems to have much better coverage across systems.
> 
> This should also help in easy adoption of SoF for non Intel people...
> 
> Also looking at it, lot of IPC code, DSP loading etc would go away
> making SoF code lesser in footprint.
> 
> I think benefits outweigh the effort of porting to a framework which is
> already upstream and used on many platforms for different vendors!

Just for information... ST Microelectronics plans to port SOF to at
least one of its platforms (based on ARM cores). Today, for the
co-processor  management we use the rpmsg and remoteproc frameworks on
the Linux kernel side and OpenAMP on the remote processor side. We are
therefore interested in xiang's work.
An advantage we see in this generic solution is that compatibility
between the Linux kernel frameworks and the OpenAMP library is ensured
through discussions in the Linux and OpenAMP communities, involving
maintainers and several vendors.

Regards
Arnaud

> 
>> There are other paths such as using the mailbox framework, and at the end of
>> the day the IPC is likely going to be a configurable element where
>> integrators pick what's best for them. If you strongly believe that the
>> RPMSG framework is the way to go, there is a public github and you can
>> contribute the relevant changes with both kernel and firmware patches.
>> 
>> > 
>> > > > Actually, remoteproc/rpmsg is much better than SOF IPC because:
>> > > > 1.Completely isolate the firmware load and message transfer:
>> > > >     The same rpmsg driver could run on any remote processor
>> > > > 2.Separate the application protocol from transfer layer:
>> > > >     One remote processor could host many rpmsg services
>> > > > 3.Completely follow kernel driver model(rpsmg_bus, rpmsg_device and rpmsg_driver).
>> > > > 4.Support by many RTOS(Bare Metal, FreeRTOS, Zephyr, NuttX, Nucleus, uC/OS...) for remote side:
>> > > >     https://github.com/OpenAMP/open-amp
>> > > >     https://github.com/NXPmicro/rpmsg-lite
> 
> ^^^
> 
>> > > > 5.Maintained by the standard committee:
>> > > >     https://www.multicore-association.org/workgroup/oamp.php
>> > > >     https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=virtio
>> > > > Since the keypoint of SOF is the platform agnostic and modular, please use the standard technique here.
>> 
>> As stated above there is no opposition to using fancier/more generic IPC
>> solutions, but they have to be considered as evolutions and follow the due
>> process of contributions/reviews plus be aligned with product timelines.
> 
> Sorry but upstream cares more about doing the right things rather than
> vendor timelines..
> 
> -- 
> ~Vinod

WARNING: multiple messages have this Message-ID (diff)
From: Arnaud Pouliquen <arnaud.pouliquen@st.com>
To: Vinod Koul <vkoul@kernel.org>,
	Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Cc: Daniel Baluta <daniel.baluta@gmail.com>,
	Kumar Gala <kumar.gala@linaro.org>,
	"andriy.shevchenko@intel.com" <andriy.shevchenko@intel.com>,
	xiang xiao <xiaoxiang781216@gmail.com>,
	"tiwai@suse.de" <tiwai@suse.de>,
	"linux-remoteproc@vger.kernel.org"
	<linux-remoteproc@vger.kernel.org>,
	"alsa-devel@alsa-project.org" <alsa-devel@alsa-project.org>,
	Bjorn Andersson <bjorn.andersson@linaro.org>,
	"liam.r.girdwood@linux.intel.com"
	<liam.r.girdwood@linux.intel.com>,
	"broonie@kernel.org" <broonie@kernel.org>,
	Srinivas Kandagatla <srinivas.kandagatla@linaro.org>,
	Xiang Xiao <xiaoxiang@xiaomi.com>,
	Alan Cox <alan@linux.intel.com>,
	"wendy.liang@xilinx.com" <wendy.liang@xilinx.com>,
	"sound-open-firmware@alsa-project.org"
	<sound-open-firmware@alsa-project.org>
Subject: Re: [v4,00/14] ASoC: Sound Open Firmware (SOF) core
Date: Thu, 21 Feb 2019 11:42:25 +0100	[thread overview]
Message-ID: <1af21f7e-1ea1-98a0-cf6d-74d0f4e5b186@st.com> (raw)
In-Reply-To: <20190221043925.GF2736@vkoul-mobl>

Hello,

On 2/21/19 5:39 AM, Vinod Koul wrote:
> Hi Pierre,
> 
> On 19-02-19, 09:55, Pierre-Louis Bossart wrote:
>> 
>> On 2/19/19 9:09 AM, xiang xiao wrote:
>> > On Tue, Feb 19, 2019 at 5:49 PM Srinivas Kandagatla
>> > <srinivas.kandagatla@linaro.org> wrote:
>> > > 
>> > > 
>> > > On 18/02/2019 20:03, Xiang Xiao wrote:
>> > > > Should we utilize official IPC frameowrk instead reinverting the wheel?
>> > > > 1.Load firmware by drivers/remoteproc
>> > > >     https://www.kernel.org/doc/Documentation/remoteproc.txt
>> > > > 2.Do the comunication through drivers/rpmsg
>> > > >     https://www.kernel.org/doc/Documentation/rpmsg.txt
>> > > > Many vendor(TI, Qualcomm, ST, NXP, Xilinx...) migrate to remoteproc/rpmsg, why Intel provide an other IPC mechanism?
>> > > It definitely makes more sense to use rpmsg for Generic IPC driver here.
>> > > 
>> > > Qualcomm DSP audio drivers (non SOF) already use rpmsg. This will
>> > > definitely help everyone in future while immigrating to SOF.
>> > > 
>> > Actually, Xiaomi also build DSP audio driver on top of rpmsg, but
>> > fully integrate with the ASoC topology framework, and the firmware is
>> > base on FreeRTOS and OpenMAX.
>> > SOF initiative is very good and exciting, our team members(include me)
>> > spend a couple weeks to study the current code base on both firmware
>> > and kernel side, we even port SOF to our DSP/MCU and make it run, but
>> > I have to point out that:
>> > SOF IPC is too simple and rigid, tightly couple with Intel platform
>> > and audio domain, which make:
>> >     a.It's difficult to integrate with other vendor SoC, especially if
>> > other vendor already adopt remote/rpmsg(this is already a trend!).
>> >     b.It's difficult to add other IPC services for example:
>> >        i.Audio DSP talk to power MCU to adjust clock and voltage
>> >        ii.Export ultrasonic distance measurement to IIO subsystem
>> 
>> The IPC scheme suggested in this patchset is only a first pass that works on
>> 3 generations on Intel platforms + the QEMU  parts. There are no claims that
>> the current solution is set-in-stone, and this is already an area where
>> things are already changing to support notifications and low-power
>> transitions.
>> 
>> There will clearly be evolutions to make the IPC more flexible/generic, but
>> we've got to start somewhere and bear in mind that we also have to support
>> memory-constrained legacy devices where such generic frameworks aren't
>> needed or even implementable. Some of your proposals such as changing
>> power/clocks with a firmware request aren't necessarily possible or
>> recommended on all platforms - i can already hear security folks howling,
>> this was already mentioned in the GitHub thread.
> 
> Rather than evolve the IPC, i would say it makes more sense that we
> "reuse" existing upstream frameworks.. As given below by xiang
> this seems to have support for RTOSes (see point 4 below) and looking at
> below it seems to have much better coverage across systems.
> 
> This should also help in easy adoption of SoF for non Intel people...
> 
> Also looking at it, lot of IPC code, DSP loading etc would go away
> making SoF code lesser in footprint.
> 
> I think benefits outweigh the effort of porting to a framework which is
> already upstream and used on many platforms for different vendors!

Just for information... ST Microelectronics plans to port SOF to at
least one of its platforms (based on ARM cores). Today, for the
co-processor  management we use the rpmsg and remoteproc frameworks on
the Linux kernel side and OpenAMP on the remote processor side. We are
therefore interested in xiang's work.
An advantage we see in this generic solution is that compatibility
between the Linux kernel frameworks and the OpenAMP library is ensured
through discussions in the Linux and OpenAMP communities, involving
maintainers and several vendors.

Regards
Arnaud

> 
>> There are other paths such as using the mailbox framework, and at the end of
>> the day the IPC is likely going to be a configurable element where
>> integrators pick what's best for them. If you strongly believe that the
>> RPMSG framework is the way to go, there is a public github and you can
>> contribute the relevant changes with both kernel and firmware patches.
>> 
>> > 
>> > > > Actually, remoteproc/rpmsg is much better than SOF IPC because:
>> > > > 1.Completely isolate the firmware load and message transfer:
>> > > >     The same rpmsg driver could run on any remote processor
>> > > > 2.Separate the application protocol from transfer layer:
>> > > >     One remote processor could host many rpmsg services
>> > > > 3.Completely follow kernel driver model(rpsmg_bus, rpmsg_device and rpmsg_driver).
>> > > > 4.Support by many RTOS(Bare Metal, FreeRTOS, Zephyr, NuttX, Nucleus, uC/OS...) for remote side:
>> > > >     https://github.com/OpenAMP/open-amp
>> > > >     https://github.com/NXPmicro/rpmsg-lite
> 
> ^^^
> 
>> > > > 5.Maintained by the standard committee:
>> > > >     https://www.multicore-association.org/workgroup/oamp.php
>> > > >     https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=virtio
>> > > > Since the keypoint of SOF is the platform agnostic and modular, please use the standard technique here.
>> 
>> As stated above there is no opposition to using fancier/more generic IPC
>> solutions, but they have to be considered as evolutions and follow the due
>> process of contributions/reviews plus be aligned with product timelines.
> 
> Sorry but upstream cares more about doing the right things rather than
> vendor timelines..
> 
> -- 
> ~Vinod
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

  reply	other threads:[~2019-02-21 10:42 UTC|newest]

Thread overview: 81+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-02-13 22:07 [PATCH v4 00/14] ASoC: Sound Open Firmware (SOF) core Pierre-Louis Bossart
2019-02-13 22:07 ` [PATCH v4 01/14] ASoC: SOF: Add Sound Open Firmware driver core Pierre-Louis Bossart
2019-02-14  9:25   ` Takashi Iwai
2019-02-14 14:53     ` [Sound-open-firmware] " Pierre-Louis Bossart
2019-02-19 15:38       ` Mark Brown
2019-02-20 14:35         ` Pierre-Louis Bossart
2019-02-20 16:26           ` Mark Brown
2019-02-20 21:32             ` Pierre-Louis Bossart
2019-02-21 18:47               ` Mark Brown
2019-02-22  0:08                 ` Pierre-Louis Bossart
2019-02-13 22:07 ` [PATCH v4 02/14] ASoC: SOF: Add Sound Open Firmware KControl support Pierre-Louis Bossart
2019-02-14  9:30   ` Takashi Iwai
2019-02-14 14:35     ` [Sound-open-firmware] " Pierre-Louis Bossart
2019-02-14 15:21       ` Takashi Iwai
2019-02-13 22:07 ` [PATCH v4 03/14] ASoC: SOF: Add driver debug support Pierre-Louis Bossart
2019-02-13 22:07 ` [PATCH v4 04/14] ASoC: SOF: Add support for IPC IO between DSP and Host Pierre-Louis Bossart
2019-02-14 11:52   ` Takashi Iwai
2019-02-14 14:56     ` [Sound-open-firmware] " Pierre-Louis Bossart
2019-02-20 17:31       ` Mark Brown
2019-02-13 22:07 ` [PATCH v4 05/14] ASoC: SOF: Add PCM operations support Pierre-Louis Bossart
2019-02-14 11:20   ` Takashi Iwai
2019-02-14 15:07     ` [Sound-open-firmware] " Pierre-Louis Bossart
2019-02-14 20:42       ` Pierre-Louis Bossart
2019-02-18 15:51   ` Daniel Baluta
2019-02-13 22:07 ` [PATCH v4 06/14] ASoC: SOF: Add support for loading topologies Pierre-Louis Bossart
2019-02-13 22:07 ` [PATCH v4 07/14] ASoC: SOF: Add DSP firmware logger support Pierre-Louis Bossart
2019-02-14 13:19   ` Takashi Iwai
2019-02-14 15:13     ` [Sound-open-firmware] " Pierre-Louis Bossart
2019-02-20 17:44   ` Mark Brown
2019-02-20 20:18     ` Pierre-Louis Bossart
2019-02-21 12:29       ` Andy Shevchenko
2019-02-21 14:57         ` Pierre-Louis Bossart
2019-02-21 15:04         ` Mark Brown
2019-02-13 22:07 ` [PATCH v4 08/14] ASoC: SOF: Add DSP HW abstraction operations Pierre-Louis Bossart
2019-02-14 13:21   ` Takashi Iwai
2019-02-14 15:22     ` [Sound-open-firmware] " Pierre-Louis Bossart
2019-02-14 13:45   ` Andy Shevchenko
2019-02-14 15:21     ` [Sound-open-firmware] " Pierre-Louis Bossart
2019-02-13 22:07 ` [PATCH v4 09/14] ASoC: SOF: Add firmware loader support Pierre-Louis Bossart
2019-02-13 22:07 ` [PATCH v4 10/14] ASoC: SOF: Add userspace ABI support Pierre-Louis Bossart
2019-02-13 22:07 ` [PATCH v4 11/14] ASoC: SOF: Add PM support Pierre-Louis Bossart
2019-02-13 22:07 ` [PATCH v4 12/14] ASoC: SOF: Add Nocodec machine driver support Pierre-Louis Bossart
2019-02-13 22:07 ` [PATCH v4 13/14] ASoC: SOF: Add xtensa support Pierre-Louis Bossart
2019-02-13 22:07 ` [PATCH v4 14/14] ASoC: SOF: Add utils Pierre-Louis Bossart
2019-02-14 13:33   ` Takashi Iwai
2019-02-14 13:37     ` Takashi Iwai
2019-02-18 20:03 ` [v4,00/14] ASoC: Sound Open Firmware (SOF) core Xiang Xiao
2019-02-19  9:49   ` [alsa-devel] " Srinivas Kandagatla
2019-02-19  9:49     ` Srinivas Kandagatla
2019-02-19 15:09     ` [alsa-devel] " xiang xiao
2019-02-19 15:09       ` xiang xiao
2019-02-19 15:55       ` [alsa-devel] " Pierre-Louis Bossart
2019-02-19 15:55         ` Pierre-Louis Bossart
2019-02-21  4:39         ` [alsa-devel] " Vinod Koul
2019-02-21  4:39           ` Vinod Koul
2019-02-21 10:42           ` Arnaud Pouliquen [this message]
2019-02-21 10:42             ` Arnaud Pouliquen
2019-02-21 11:28             ` [alsa-devel] " Mark Brown
2019-02-21 11:28               ` Mark Brown
2019-02-21 23:49               ` [alsa-devel] " Pierre-Louis Bossart
2019-02-21 23:49                 ` Pierre-Louis Bossart
2019-02-21 15:27           ` [alsa-devel] " Pierre-Louis Bossart
2019-02-21 15:27             ` Pierre-Louis Bossart
2019-02-22  8:32             ` [alsa-devel] " xiang xiao
2019-02-22  8:32               ` xiang xiao
2019-02-22 11:15               ` [alsa-devel] " Keyon Jie
2019-02-22 11:15                 ` Keyon Jie
2019-02-22 18:21                 ` [alsa-devel] " xiang xiao
2019-02-22 18:21                   ` xiang xiao
2019-02-25  3:05                   ` [Sound-open-firmware] [alsa-devel] [v4, 00/14] " Keyon Jie
2019-02-25  3:05                     ` [Sound-open-firmware] " Keyon Jie
2019-02-22 14:48               ` [Sound-open-firmware] [alsa-devel] " Pierre-Louis Bossart
2019-02-22 14:48                 ` [Sound-open-firmware] " Pierre-Louis Bossart
2019-02-22 18:41                 ` [Sound-open-firmware] [alsa-devel] " xiang xiao
2019-02-22 18:41                   ` [Sound-open-firmware] " xiang xiao
2019-02-22 21:52                   ` [alsa-devel] " Pierre-Louis Bossart
2019-02-22 21:52                     ` Pierre-Louis Bossart
2019-02-23 16:42                     ` [alsa-devel] " xiang xiao
2019-02-23 16:42                       ` xiang xiao
2019-02-25 10:16                 ` [Sound-open-firmware] [alsa-devel] " Srinivas Kandagatla
2019-02-25 10:16                   ` [Sound-open-firmware] " Srinivas Kandagatla

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1af21f7e-1ea1-98a0-cf6d-74d0f4e5b186@st.com \
    --to=arnaud.pouliquen@st.com \
    --cc=alan@linux.intel.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=andriy.shevchenko@intel.com \
    --cc=bjorn.andersson@linaro.org \
    --cc=broonie@kernel.org \
    --cc=daniel.baluta@gmail.com \
    --cc=kumar.gala@linaro.org \
    --cc=liam.r.girdwood@linux.intel.com \
    --cc=linux-remoteproc@vger.kernel.org \
    --cc=pierre-louis.bossart@linux.intel.com \
    --cc=sound-open-firmware@alsa-project.org \
    --cc=srinivas.kandagatla@linaro.org \
    --cc=tiwai@suse.de \
    --cc=vkoul@kernel.org \
    --cc=wendy.liang@xilinx.com \
    --cc=xiaoxiang781216@gmail.com \
    --cc=xiaoxiang@xiaomi.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.