thesofproject / sof

Sound Open Firmware
Other
548 stars 314 forks source link

[FEATURE] IPC 2.0 #1212

Open lgirdwood opened 5 years ago

lgirdwood commented 5 years ago

Current IPC survives MINOR and PATCH semantic ABI version updates but needs to be fully future proof. We need a fully future proof IPC where structure additions and changes are non fatal to every structure and substructure.

plbossart commented 5 years ago

@lgirdwood I have zero cycles to work on this until Q4.

lgirdwood commented 5 years ago

IPC 2.0 should have the following requirements. 1) Support IPC deprecation 2) Support IPC growth 3) Support IPC discoverability. 4) Support multiple classes of features (not just audio).

Requirements can be met if :

1) IPC "ID space" is split into several classes like audio, debug, sensors, etc 2) Each IPC class has a set of supported IPC commands (with GUID). 3) Each IPC command is tightly coupled to a C structure. 4) Supported IPC classes and IPC command GUIDs are sent to the host using the FW ready message. 5) All IPC C structures use the same small header.

All the above means that host drivers will receive a list of IPC classes and IPC command GUIDs at FW boot time and can map commands to the correct IPC function that deals with that GUID. i..e the IPC audio class and IPC audio command GUIDs will be parsed by audio driver, likewise for sensor driver etc.

lgirdwood commented 5 years ago

@plbossart I know, it's to keep you in the loop.