Skip to content

[BUG] Platform-specific IPC4 code in platform-independent source files #7549

@andyross

Description

@andyross

Recent IPC4 changes have been introducing Intel DSP details into the generic SOF source layer.

The src/audio/base_fw.c file (despite the name, this is an IPC4-only source file) is implementing a protocol that seems directly related to Intel hardware details. In particular the handling in basefw_mem_state_info() is doing direct register reads to retrieve hardware state. It seems like there's a facility in place to structure the output of this function via "tuple" key/data pairs, but there's no documentation on the format it nor indirection API available for platforms.

Similarly the component driver module handling in ipc4/helper.c:ipc4_get_comp_drv() assumes that there is a Intel rimage-generated manifest format in memory from which to load modules. There is a "LIBRARY_MANAGER" feature that seems to be intended to replace this, I think? As of right now neither mechanism is in use in the main tree.

All hardware-specific features like this need to be provided behind an API that allows for other platforms to redefine it as needed, and ideally be defined/documented in a way that makes as few assumptions as possible about the underlying hardware.

See also comments and commit messages is PR #7531

Metadata

Metadata

Assignees

Labels

bugSomething isn't working as expected

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions