abi: ipc: Allow ABI to grow with MINOR/PATCH updates.

This patch allows ABI changes to incrementally grow certain IPC
structure and sub structures without changing MAJOR and keeping
backwards compatability.

Adds some helper IPC copier and validation macros that should be used
when handling external IPC structures. These ensure IPC changes are
handled correctly without causing errors or failures.

IPC size should be the first item in each structure to make it as easy
as possible to manage MINOR and PATCH ABI updates without unnecessary
replacement of FW or kernel.

This patch also makes size first in the IPC command header and introduces
a new header for internal IPC sub structures. The sub structure size
can be used to validate IPC and also be used to grow tail IPC command
sub structures as MINOR/PATCH ABI changes.

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
32 files changed
tree: c81329ce1e64cb30aaa00b8fa05af02056a13bb9
  1. doc/
  2. m4/
  3. rimage/
  4. scripts/
  5. src/
  6. test/
  7. tools/
  8. .gitignore
  9. .travis.yml
  10. autogen.sh
  11. CODEOWNERS
  12. configure.ac
  13. LICENCE
  14. Makefile.am
  15. README.md
  16. version.sh
README.md

Sound Open Firmware

Status

Build Status

Documentation

See docs

Prerequisites

  • Docker

Build Instructions

  1. Run autogen.sh

  2. Build and install the rimage ELF image creator and signing tool

./configure --enable-rimage
make
sudo make install
  1. Run the following configure based on your platform.

Baytrail :-

./configure --with-arch=xtensa --with-platform=baytrail --with-root-dir=$PWD/../xtensa-root/xtensa-byt-elf --host=xtensa-byt-elf

Cherrytrail :-

./configure --with-arch=xtensa --with-platform=cherrytrail --with-root-dir=$PWD/../xtensa-root/xtensa-byt-elf --host=xtensa-byt-elf

Library for Host Platform :- If building library for host platform, run the following configure. Please modify the --prefix option to choose the directory for installing the library files and headers

./configure --with-arch=host --enable-library=yes --host=x86_64-unknown-linux-gnu --prefix=$PWD/../host-root/

  1. make

  2. make bin

End with an example of getting some data out of the system or using it for a little demo

Running the tests

See unit testing documentation

Deployment

Add additional notes about how to deploy this on a live system

Contributing

TODO?

License

This project is licensed under the BSD Clause 3 - see the LICENCE file for details