[WIP][Do no review] Tools: Testbech: Add IPC4 support#9025
[WIP][Do no review] Tools: Testbech: Add IPC4 support#9025singalsu wants to merge 10 commits intothesofproject:mainfrom
Conversation
This commit will be deleted when the Testbench IPC4 work is non-draft. Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This fixes build issues In file included from tools/testbench/common_test.c:5: src/platform/library/include/platform/lib/ll_schedule.h:22:51: error: ‘enum task_state’ declared inside parameter list will not be visible outside of this definition or declaration [-Werror] In file included from tools/testbench/common_test.c:16: tools/testbench/build_testbench/sof_ep/install/include/sof/ schedule/ll_schedule.h:40:5: error: conflicting types for ‘schedule_task_init_ll’ Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This fixes testbench build. Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This prevents the IPC4_FAILURE since there is no parallel execution in scheduler and pipelines with this IPC request and respond step. Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
The file module does not provide a dai_get_init_delay_ms() operation so it is skipped for CONFIG_LIBRARY testbench build. Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
The crossover_init_output_pins() function is changed to static. Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This is done as preparation for testbench IPC4 support. The update to IPC4 is simpler for a module adapter component. Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This patch copies many similar changes as has been done for
SOF plugin since split and developed further from testbench. The
changes include:
- Move tplg_ctx to under testbench_prm struct for better
compatibility with plugin and topology parser.
- Similarly as plugin ad to testbench_prm widget list, route list,
pcm list and pipeline list.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Header dai-legacy.h modify to make other functions in SOF happy is a bit suspicious. Other changes are "normal" maintenance. Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
35faee2 to
71aa31c
Compare
|
|
||
| # C & ASM flags | ||
| target_compile_options(sof_options INTERFACE -g -O3 -fPIC -DPIC -std=c99 -std=gnu99 -fgnu89-inline | ||
| target_compile_options(sof_options INTERFACE -g -fPIC -DPIC -std=c99 -std=gnu99 -fgnu89-inline |
There was a problem hiding this comment.
long term we can inherit the optimization level from Kconfig
| static int ipc_wait_for_compound_msg(void) | ||
| { | ||
| #if CONFIG_LIBRARY | ||
| atomic_set(&msg_data.delayed_reply, 0); |
There was a problem hiding this comment.
Btw, where do we clear this in DSP mode ? i.e. does this need to be executed on all targets ?
| * Initialization delay is only used with SSP, where we | ||
| * don't use more than one DAI per copier | ||
| */ | ||
| #if !CONFIG_LIBRARY |
There was a problem hiding this comment.
Can we provide this API in the file module instead, even if it returns 0 today.
There was a problem hiding this comment.
Yep, I started to separate file component module adapter changes into a separate PR. It was quite simple to get dai_get_init_delay_ms() to pass without duplicating much of DAI data structures.
tools/testbench/topology.c
Outdated
| file_uuid = (struct sof_uuid *)((uint8_t *)fileread + sizeof(struct sof_ipc_comp_file)); | ||
| file_uuid->a = 0xbfc7488c; | ||
| file_uuid->b = 0x75aa; | ||
| file_uuid->c = 0x4ce8; | ||
| file_uuid->d[0] = 0x9d; | ||
| file_uuid->d[1] = 0xbe; | ||
| file_uuid->d[2] = 0xd8; | ||
| file_uuid->d[3] = 0xda; | ||
| file_uuid->d[4] = 0x08; | ||
| file_uuid->d[5] = 0xa6; | ||
| file_uuid->d[6] = 0x98; | ||
| file_uuid->d[7] = 0xc2; |
I will next try to separate this IPC4 related work from existing IPC3 testbench that would remain mostly unchanged except file component that changes to module adapter. So, there would be two executables: testbench and testbench-ipc4. When I started this I was thinking IPC4/3 choice would be run-time but such is not possible due to other SOF parts. |
|
Thanks I didn't know -- I wonder if it could help to build with some scripts/rebuild-testbech.sh a desired IPC version. Or somehow build both to different executable paths. There's now new testbench PR version in: #9483. I will close this one later. |
First somewhat cleaned up version that runs, but needs still more work. Usage e.g.
To-do: