From mboxrd@z Thu Jan 1 00:00:00 1970 From: Pierre-Louis Bossart Subject: Re: [v4,00/14] ASoC: Sound Open Firmware (SOF) core Date: Tue, 19 Feb 2019 09:55:52 -0600 Message-ID: References: <20190213220734.10471-1-pierre-louis.bossart@linux.intel.com> <1550520188-9253-1-git-send-email-xiaoxiang@xiaomi.com> <2ad7bf66-a0a9-b97d-e1b1-48e3f9c699c5@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: alsa-devel-bounces@alsa-project.org To: xiang xiao , Srinivas Kandagatla Cc: Daniel Baluta , Kumar Gala , andriy.shevchenko@intel.com, tiwai@suse.de, Arnaud POULIQUEN , linux-remoteproc@vger.kernel.org, alsa-devel@alsa-project.org, Bjorn Andersson , liam.r.girdwood@linux.intel.com, vkoul@kernel.org, broonie@kernel.org, Xiang Xiao , Alan Cox , wendy.liang@xilinx.com, sound-open-firmware@alsa-project.org List-Id: alsa-devel@alsa-project.org Ck9uIDIvMTkvMTkgOTowOSBBTSwgeGlhbmcgeGlhbyB3cm90ZToKPiBPbiBUdWUsIEZlYiAxOSwg MjAxOSBhdCA1OjQ5IFBNIFNyaW5pdmFzIEthbmRhZ2F0bGEKPiA8c3Jpbml2YXMua2FuZGFnYXRs YUBsaW5hcm8ub3JnPiB3cm90ZToKPj4KPj4KPj4gT24gMTgvMDIvMjAxOSAyMDowMywgWGlhbmcg WGlhbyB3cm90ZToKPj4+IFNob3VsZCB3ZSB1dGlsaXplIG9mZmljaWFsIElQQyBmcmFtZW93cmsg aW5zdGVhZCByZWludmVydGluZyB0aGUgd2hlZWw/Cj4+PiAxLkxvYWQgZmlybXdhcmUgYnkgZHJp dmVycy9yZW1vdGVwcm9jCj4+PiAgICAgaHR0cHM6Ly93d3cua2VybmVsLm9yZy9kb2MvRG9jdW1l bnRhdGlvbi9yZW1vdGVwcm9jLnR4dAo+Pj4gMi5EbyB0aGUgY29tdW5pY2F0aW9uIHRocm91Z2gg ZHJpdmVycy9ycG1zZwo+Pj4gICAgIGh0dHBzOi8vd3d3Lmtlcm5lbC5vcmcvZG9jL0RvY3VtZW50 YXRpb24vcnBtc2cudHh0Cj4+PiBNYW55IHZlbmRvcihUSSwgUXVhbGNvbW0sIFNULCBOWFAsIFhp bGlueC4uLikgbWlncmF0ZSB0byByZW1vdGVwcm9jL3JwbXNnLCB3aHkgSW50ZWwgcHJvdmlkZSBh biBvdGhlciBJUEMgbWVjaGFuaXNtPwo+PiBJdCBkZWZpbml0ZWx5IG1ha2VzIG1vcmUgc2Vuc2Ug dG8gdXNlIHJwbXNnIGZvciBHZW5lcmljIElQQyBkcml2ZXIgaGVyZS4KPj4KPj4gUXVhbGNvbW0g RFNQIGF1ZGlvIGRyaXZlcnMgKG5vbiBTT0YpIGFscmVhZHkgdXNlIHJwbXNnLiBUaGlzIHdpbGwK Pj4gZGVmaW5pdGVseSBoZWxwIGV2ZXJ5b25lIGluIGZ1dHVyZSB3aGlsZSBpbW1pZ3JhdGluZyB0 byBTT0YuCj4+Cj4gQWN0dWFsbHksIFhpYW9taSBhbHNvIGJ1aWxkIERTUCBhdWRpbyBkcml2ZXIg b24gdG9wIG9mIHJwbXNnLCBidXQKPiBmdWxseSBpbnRlZ3JhdGUgd2l0aCB0aGUgQVNvQyB0b3Bv bG9neSBmcmFtZXdvcmssIGFuZCB0aGUgZmlybXdhcmUgaXMKPiBiYXNlIG9uIEZyZWVSVE9TIGFu ZCBPcGVuTUFYLgo+IFNPRiBpbml0aWF0aXZlIGlzIHZlcnkgZ29vZCBhbmQgZXhjaXRpbmcsIG91 ciB0ZWFtIG1lbWJlcnMoaW5jbHVkZSBtZSkKPiBzcGVuZCBhIGNvdXBsZSB3ZWVrcyB0byBzdHVk eSB0aGUgY3VycmVudCBjb2RlIGJhc2Ugb24gYm90aCBmaXJtd2FyZQo+IGFuZCBrZXJuZWwgc2lk ZSwgd2UgZXZlbiBwb3J0IFNPRiB0byBvdXIgRFNQL01DVSBhbmQgbWFrZSBpdCBydW4sIGJ1dAo+ IEkgaGF2ZSB0byBwb2ludCBvdXQgdGhhdDoKPiBTT0YgSVBDIGlzIHRvbyBzaW1wbGUgYW5kIHJp Z2lkLCB0aWdodGx5IGNvdXBsZSB3aXRoIEludGVsIHBsYXRmb3JtCj4gYW5kIGF1ZGlvIGRvbWFp biwgd2hpY2ggbWFrZToKPiAgICAgYS5JdCdzIGRpZmZpY3VsdCB0byBpbnRlZ3JhdGUgd2l0aCBv dGhlciB2ZW5kb3IgU29DLCBlc3BlY2lhbGx5IGlmCj4gb3RoZXIgdmVuZG9yIGFscmVhZHkgYWRv cHQgcmVtb3RlL3JwbXNnKHRoaXMgaXMgYWxyZWFkeSBhIHRyZW5kISkuCj4gICAgIGIuSXQncyBk aWZmaWN1bHQgdG8gYWRkIG90aGVyIElQQyBzZXJ2aWNlcyBmb3IgZXhhbXBsZToKPiAgICAgICAg aS5BdWRpbyBEU1AgdGFsayB0byBwb3dlciBNQ1UgdG8gYWRqdXN0IGNsb2NrIGFuZCB2b2x0YWdl Cj4gICAgICAgIGlpLkV4cG9ydCB1bHRyYXNvbmljIGRpc3RhbmNlIG1lYXN1cmVtZW50IHRvIElJ TyBzdWJzeXN0ZW0KClRoZSBJUEMgc2NoZW1lIHN1Z2dlc3RlZCBpbiB0aGlzIHBhdGNoc2V0IGlz IG9ubHkgYSBmaXJzdCBwYXNzIHRoYXQgCndvcmtzIG9uIDMgZ2VuZXJhdGlvbnMgb24gSW50ZWwg cGxhdGZvcm1zICsgdGhlIFFFTVXCoCBwYXJ0cy4gVGhlcmUgYXJlIApubyBjbGFpbXMgdGhhdCB0 aGUgY3VycmVudCBzb2x1dGlvbiBpcyBzZXQtaW4tc3RvbmUsIGFuZCB0aGlzIGlzIGFscmVhZHkg CmFuIGFyZWEgd2hlcmUgdGhpbmdzIGFyZSBhbHJlYWR5IGNoYW5naW5nIHRvIHN1cHBvcnQgbm90 aWZpY2F0aW9ucyBhbmQgCmxvdy1wb3dlciB0cmFuc2l0aW9ucy4KClRoZXJlIHdpbGwgY2xlYXJs eSBiZSBldm9sdXRpb25zIHRvIG1ha2UgdGhlIElQQyBtb3JlIGZsZXhpYmxlL2dlbmVyaWMsIApi dXQgd2UndmUgZ290IHRvIHN0YXJ0IHNvbWV3aGVyZSBhbmQgYmVhciBpbiBtaW5kIHRoYXQgd2Ug YWxzbyBoYXZlIHRvIApzdXBwb3J0IG1lbW9yeS1jb25zdHJhaW5lZCBsZWdhY3kgZGV2aWNlcyB3 aGVyZSBzdWNoIGdlbmVyaWMgZnJhbWV3b3JrcyAKYXJlbid0IG5lZWRlZCBvciBldmVuIGltcGxl bWVudGFibGUuIFNvbWUgb2YgeW91ciBwcm9wb3NhbHMgc3VjaCBhcyAKY2hhbmdpbmcgcG93ZXIv Y2xvY2tzIHdpdGggYSBmaXJtd2FyZSByZXF1ZXN0IGFyZW4ndCBuZWNlc3NhcmlseSAKcG9zc2li bGUgb3IgcmVjb21tZW5kZWQgb24gYWxsIHBsYXRmb3JtcyAtIGkgY2FuIGFscmVhZHkgaGVhciBz ZWN1cml0eSAKZm9sa3MgaG93bGluZywgdGhpcyB3YXMgYWxyZWFkeSBtZW50aW9uZWQgaW4gdGhl IEdpdEh1YiB0aHJlYWQuCgpUaGVyZSBhcmUgb3RoZXIgcGF0aHMgc3VjaCBhcyB1c2luZyB0aGUg bWFpbGJveCBmcmFtZXdvcmssIGFuZCBhdCB0aGUgCmVuZCBvZiB0aGUgZGF5IHRoZSBJUEMgaXMg bGlrZWx5IGdvaW5nIHRvIGJlIGEgY29uZmlndXJhYmxlIGVsZW1lbnQgCndoZXJlIGludGVncmF0 b3JzIHBpY2sgd2hhdCdzIGJlc3QgZm9yIHRoZW0uIElmIHlvdSBzdHJvbmdseSBiZWxpZXZlIAp0 aGF0IHRoZSBSUE1TRyBmcmFtZXdvcmsgaXMgdGhlIHdheSB0byBnbywgdGhlcmUgaXMgYSBwdWJs aWMgZ2l0aHViIGFuZCAKeW91IGNhbiBjb250cmlidXRlIHRoZSByZWxldmFudCBjaGFuZ2VzIHdp dGggYm90aCBrZXJuZWwgYW5kIGZpcm13YXJlIApwYXRjaGVzLgoKPgo+Pj4gQWN0dWFsbHksIHJl bW90ZXByb2MvcnBtc2cgaXMgbXVjaCBiZXR0ZXIgdGhhbiBTT0YgSVBDIGJlY2F1c2U6Cj4+PiAx LkNvbXBsZXRlbHkgaXNvbGF0ZSB0aGUgZmlybXdhcmUgbG9hZCBhbmQgbWVzc2FnZSB0cmFuc2Zl cjoKPj4+ICAgICBUaGUgc2FtZSBycG1zZyBkcml2ZXIgY291bGQgcnVuIG9uIGFueSByZW1vdGUg cHJvY2Vzc29yCj4+PiAyLlNlcGFyYXRlIHRoZSBhcHBsaWNhdGlvbiBwcm90b2NvbCBmcm9tIHRy YW5zZmVyIGxheWVyOgo+Pj4gICAgIE9uZSByZW1vdGUgcHJvY2Vzc29yIGNvdWxkIGhvc3QgbWFu eSBycG1zZyBzZXJ2aWNlcwo+Pj4gMy5Db21wbGV0ZWx5IGZvbGxvdyBrZXJuZWwgZHJpdmVyIG1v ZGVsKHJwc21nX2J1cywgcnBtc2dfZGV2aWNlIGFuZCBycG1zZ19kcml2ZXIpLgo+Pj4gNC5TdXBw b3J0IGJ5IG1hbnkgUlRPUyhCYXJlIE1ldGFsLCBGcmVlUlRPUywgWmVwaHlyLCBOdXR0WCwgTnVj bGV1cywgdUMvT1MuLi4pIGZvciByZW1vdGUgc2lkZToKPj4+ICAgICBodHRwczovL2dpdGh1Yi5j b20vT3BlbkFNUC9vcGVuLWFtcAo+Pj4gICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9OWFBtaWNyby9y cG1zZy1saXRlCj4+PiA1Lk1haW50YWluZWQgYnkgdGhlIHN0YW5kYXJkIGNvbW1pdHRlZToKPj4+ ICAgICBodHRwczovL3d3dy5tdWx0aWNvcmUtYXNzb2NpYXRpb24ub3JnL3dvcmtncm91cC9vYW1w LnBocAo+Pj4gICAgIGh0dHBzOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2NvbW1pdHRlZXMvdGNfaG9t ZS5waHA/d2dfYWJicmV2PXZpcnRpbwo+Pj4gU2luY2UgdGhlIGtleXBvaW50IG9mIFNPRiBpcyB0 aGUgcGxhdGZvcm0gYWdub3N0aWMgYW5kIG1vZHVsYXIsIHBsZWFzZSB1c2UgdGhlIHN0YW5kYXJk IHRlY2huaXF1ZSBoZXJlLgoKQXMgc3RhdGVkIGFib3ZlIHRoZXJlIGlzIG5vIG9wcG9zaXRpb24g dG8gdXNpbmcgZmFuY2llci9tb3JlIGdlbmVyaWMgSVBDIApzb2x1dGlvbnMsIGJ1dCB0aGV5IGhh dmUgdG8gYmUgY29uc2lkZXJlZCBhcyBldm9sdXRpb25zIGFuZCBmb2xsb3cgdGhlIApkdWUgcHJv Y2VzcyBvZiBjb250cmlidXRpb25zL3Jldmlld3MgcGx1cyBiZSBhbGlnbmVkIHdpdGggcHJvZHVj dCB0aW1lbGluZXMuCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpBbHNhLWRldmVsIG1haWxpbmcgbGlzdApBbHNhLWRldmVsQGFsc2EtcHJvamVjdC5vcmcK aHR0cDovL21haWxtYW4uYWxzYS1wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Fsc2EtZGV2 ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Subject: Re: [alsa-devel] [v4,00/14] ASoC: Sound Open Firmware (SOF) core References: <20190213220734.10471-1-pierre-louis.bossart@linux.intel.com> <1550520188-9253-1-git-send-email-xiaoxiang@xiaomi.com> <2ad7bf66-a0a9-b97d-e1b1-48e3f9c699c5@linaro.org> From: Pierre-Louis Bossart Message-ID: Date: Tue, 19 Feb 2019 09:55:52 -0600 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-US To: xiang xiao , Srinivas Kandagatla Cc: Daniel Baluta , Kumar Gala , andriy.shevchenko@intel.com, alsa-devel@alsa-project.org, tiwai@suse.de, linux-remoteproc@vger.kernel.org, Arnaud POULIQUEN , Bjorn Andersson , liam.r.girdwood@linux.intel.com, vkoul@kernel.org, broonie@kernel.org, Xiang Xiao , sound-open-firmware@alsa-project.org, wendy.liang@xilinx.com, Alan Cox List-ID: On 2/19/19 9:09 AM, xiang xiao wrote: > On Tue, Feb 19, 2019 at 5:49 PM Srinivas Kandagatla > 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. 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.