Re: [Sound-open-firmware] [PATCH v3 07/14] ASoC: SOF: Add DSP firmware logger support

Pierre-Louis Bossart
2018-12-12T16:04:42Z

On 12/12/18 5:11 AM, Takashi Iwai wrote:
> On Tue, 11 Dec 2018 22:23:11 +0100,
> Pierre-Louis Bossart wrote:
>> From: Liam Girdwood <liam.r.girdwood@linux.intel.com>
>>
>> This patch adds support for real-time DSP logging (timestamped events
>> and bespoke binary data) for firmware debug. The current solution
>> relies on DMA transfers to system memory that is then accessed by
>> userspace tools such as sof-logger. For Intel platforms, two types of
>> DMAs are currently used (GP-DMA for Baytrail/CherryTrail and HDaudio
>> DMA for SKL+)
>>
>> Due to historical reasons, the driver code follows the DSP firmware
>> conventions and refers to 'traces', but it is currently unrelated to
>> the Linux trace subsystem. Future solutions will include support for
>> more advanced hardware (e.g. MIPI Sys-T), additional formats and the
>> ability to enable/disable specific traces dynamically.
> So what's the reason not to use Linux standard tracing infrastructure?

I obviously failed to convey the intent in the commit message :-(

What we have today is just a DMA-based transfers of 'trace' data into a
ring buffer. That's it. it's very similar to what always existed on Atom
and Skylake, just more transparent and released for upstream reviews
this time.

Is it optimal or final? Absolutely not. There will be evolutions such as

A) support for multi-cores on the DSP side, each with their own 'trace'
capability.

B) support for other hardware platforms which may not have a DMA.

C) support for 'probes' to retrieve and inject PCM data into specific
firmware nodes.

This patch does not create a new generic tracing infrastructure for
Linux. We are exploring ways by which this standard tracing
infrastructure can be used, we just haven't had time to look into it as
we focused on runtime_pm and new platforms first.

Also we need to make sure the DSP traces are not defined for Linux only,
it's intended that the SOF firmware is used in non-Linux environments,
so we want to use what Linux provides, but not constrain SOF to work for
Linux only.

Does this help?