~canonical-hwe-team/hwe-next/+git/sof:lrg/topic/ipc2

Last commit made on 2020-07-20
Get this branch:
git clone -b lrg/topic/ipc2 https://git.launchpad.net/~canonical-hwe-team/hwe-next/+git/sof

Branch merges

Branch information

Name:
lrg/topic/ipc2
Repository:
lp:~canonical-hwe-team/hwe-next/+git/sof

Recent commits

06251a9... by Liam Girdwood <email address hidden> on 2020-07-17

ipc2: introduce IPC2 ABI.

About
----

IPC2 is a MAJOR ABI update that is not fully backwards compatible with
IPC1.x (using MAJOR 3 today).

IPC2 has the following high level aims

 1) Straight forward message life cycle management. Add/deprecate/modify
    messages with minimal pain across all messengers.

 2) Provide a transition path for code that uses existing or legacy IPC
    ABI's so that it can incrementally add IPC2.x features and support.

 3) Provide high density messaging similar to vanilla C structs.

 4) Message discovery - clients can determine supported message types
    and fields at runtime.

 5) Standard metadata for all messages with optional extra metadata.

Message Header
--------------

IPC2 messages will all use a standard header that contains generic
message metadata with optional mesage metedata. This will be used
by messengers to help process the message efficiently and securely.

Messages are now catergorized into class, subclass and action in order
to cleanly integrate into the correct driver, feature and use case
infrastrcture within FW and SW.

See header.h

Messaging Enumeration
---------------------

The FW extended manifest data will contain a list of supported messages
classes, subclasses and actions for this individual FW release. This
allows SW to scan the manifest and determine which driver, feature and
use cases are supported. The SW can then make decisions at runtime to
correctly support this individual FW release.

See manifest.h

Message Data Format
-------------------

Each piece of data sent in a message must be tagged with an ID that the
messengers all understand. This {id, data} tuple is the basis for all IPC2
communication as it's generic and has relatively simple life cycle
requirements. i.e. tuples can be easily added, removed without breaking
breaking binary ABIs or requiring all code to be rebuilt.

IPC2 also provides a pathway for migrating legacy code to IPC2. i.e. IPC2
allows existing data messages to be sent using IPC2 with the small
addition of a 1 word header that can be initially ignored by older
messengers.

See message.h

Signed-off-by: Liam Girdwood <email address hidden>

a3a9eb3... by Marc Herbert <email address hidden> on 2020-06-23

cmake: no space after -imacros to avoid de-duplication

This is not needed yet as we use only one -imacros at a time but could
save someone a lot of time in the future; including the author of this
patch who will have forgotten about it in a few weeks.

For more details see
https://github.com/zephyrproject-rtos/zephyr/commit/e53c0d0ec7640b
and links from there.

Signed-off-by: Marc Herbert <email address hidden>

01bbc30... by Karol Trzcinski <email address hidden> on 2020-06-02

ipc: Remove redundant `sof` struct definition

File with `sof` struct definition is included - `sof/sof.h`,
so this line wasn't needed.

Signed-off-by: Karol Trzcinski <email address hidden>

f4bb9fe... by Karol Trzcinski <email address hidden> on 2020-06-02

ipc: Extract pipeline id dereference from ipc_comp_dev structure

Mechanism of comparison pipe_id from ipc_comp_dev will be used in
trace filtering, so this part should be moved to separate function
and allow code reusability.
Moreover function usage is compact and descriptive method to define
what given block of code should do, so after such a refactor code
readability is improved.
Include from pipeline.h is removed to omit circular reference.

Signed-off-by: Karol Trzcinski <email address hidden>

cb10221... by Karol Trzcinski <email address hidden> on 2020-06-23

logger: Rename float_precision to time_precision

New name better describes variable functionality.

Signed-off-by: Karol Trzcinski <email address hidden>

d97e929... by Karol Trzcinski <email address hidden> on 2020-06-22

logger: Add possibility to hide timestamps

After removing timestamps it is possible to compare output logs
with tools like diff or similar. Moreover then output logs are
in more compact form.

Signed-off-by: Karol Trzcinski <email address hidden>

4e867bc... by Karol Trzcinski <email address hidden> on 2020-06-23

dai: Rephrase misleading log from dai_config()

Structure X.Y is as usual used to describe pipeline and component
id, so usage of them in different context may be misleading.

Signed-off-by: Karol Trzcinski <email address hidden>

99d7152... by Karol Trzcinski <email address hidden> on 2020-06-22

dai: Log number of frames in copy function

It easier to compare number of copied frames between dai and
process components than copied bytes.

Signed-off-by: Karol Trzcinski <email address hidden>

f69240a... by Karol Trzcinski <email address hidden> on 2020-06-22

pipe: Trace with pipe component instead of class less method

Whenever it is possible, trace function with reference to pipe
component should be used instead of class less method. It allows
to print pipeline id in output logs and filter logs by this value.
In pipeline_new() moved trace context and ipc_pipe copy, to allow
tracing with context in earlier stages of this function.

Signed-off-by: Karol Trzcinski <email address hidden>

19c3ff9... by Pan Xiuli <email address hidden> on 2020-05-27

topology: fix wrong parameter for HDMI in sof-jsl-da7219

Remove the wrong one more 0 in the DAI config for HDMI.

Signed-off-by: Pan Xiuli <email address hidden>