Uh oh!
There was an error while loading. Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork 80
intel_debug: introduction: Update default IPC4 topology path with exa…#482
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Uh oh!
There was an error while loading. Please reload this page.
Changes from all commits
File filter
Filter by extension
Conversations
Uh oh!
There was an error while loading. Please reload this page.
Jump to
Uh oh!
There was an error while loading. Please reload this page.
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -178,11 +178,42 @@ reconfigured with tools but requires expert knowledge of the ALSA/ASoC/topology | ||||||||||||||||||||||||||||||
| - CONFIG = topology variant needed for detected hardware configuration | ||||||||||||||||||||||||||||||
| * - Tiger Lake and newer | ||||||||||||||||||||||||||||||
| - IPC4 | ||||||||||||||||||||||||||||||
| - /lib/firmware/intel/sof-ipc4-tplg/sof-CONFIG.tplg | ||||||||||||||||||||||||||||||
| - /lib/firmware/intel/sof-ipc4-tplg/PLAT/sof-CONFIG.tplg | ||||||||||||||||||||||||||||||
| - CONFIG = topology variant needed for detected hardware configuration | ||||||||||||||||||||||||||||||
| Practical notes on IPC4 deployment | ||||||||||||||||||||||||||||||
| - In practice the topology files should be grouped by generations and platforms should be symlinked to the matching generation | ||||||||||||||||||||||||||||||
| - For compatibility reasons for **Meteor Lake**'s ``/lib/firmware/intel/sof-ace-tplg`` must be symlinked to ``/lib/firmware/intel/sof-ipc4-tplg/ACE1`` | ||||||||||||||||||||||||||||||
| :: | ||||||||||||||||||||||||||||||
| . | ||||||||||||||||||||||||||||||
| └── intel | ||||||||||||||||||||||||||||||
| ├── sof-ace-tplg -> sof-ipc4-tplg/ACE1 | ||||||||||||||||||||||||||||||
| └── sof-ipc4-tplg | ||||||||||||||||||||||||||||||
| ├── ACE1 | ||||||||||||||||||||||||||||||
| │ ├── sof-*.tplg | ||||||||||||||||||||||||||||||
| │ ├── ... | ||||||||||||||||||||||||||||||
| │ └── sof-*.tplg | ||||||||||||||||||||||||||||||
| ├── ACE2 -> ACE1 | ||||||||||||||||||||||||||||||
| ├── adl -> CAVS2.5 | ||||||||||||||||||||||||||||||
| ├── adl-n -> CAVS2.5 | ||||||||||||||||||||||||||||||
| ├── adl-s -> CAVS2.5 | ||||||||||||||||||||||||||||||
| ├── arl -> ACE1 | ||||||||||||||||||||||||||||||
| ├── arl-s -> ACE1 | ||||||||||||||||||||||||||||||
| ├── CAVS2.5 | ||||||||||||||||||||||||||||||
| │ ├── sof-*.tplg | ||||||||||||||||||||||||||||||
| │ ├── ... | ||||||||||||||||||||||||||||||
| │ └── sof-*.tplg | ||||||||||||||||||||||||||||||
| ├── ehl -> CAVS2.5 | ||||||||||||||||||||||||||||||
| ├── lnl -> ACE2 | ||||||||||||||||||||||||||||||
| ├── mtl -> ACE1 | ||||||||||||||||||||||||||||||
| ├── rpl -> CAVS2.5 | ||||||||||||||||||||||||||||||
| ├── rpl-s -> CAVS2.5 | ||||||||||||||||||||||||||||||
| ├── tgl -> CAVS2.5 | ||||||||||||||||||||||||||||||
| └── tgl-h -> CAVS2.5 | ||||||||||||||||||||||||||||||
Member There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Sorry @ujfalusi, this list looks too exhaustive and to some extent more confusing than the initial naming. Apart from naming conventions that can be argued on forever, what is wrong with the existing layout and can we not keep sof-ace-tplg for MTL/LNL, and change the layout as needed for future platforms? Is there really anything broken with the current layout for MTL/LNL?
| ||||||||||||||||||||||||||||||
| Directory | Content |
|---|---|
| sof | IPC3 firmware files |
| sof-tplg | IPC3 topology files |
| sof-ipc4 | IPC4 firmware files (ACE1/ACE2/CAVS2.5/some_arch/some_other_arch) |
| sof-ace-tplg | IPC4 topology files (ACE1/ACE2) |
| sof-ipc4-tplg | IPC4 topology files (for CAV2.5 platforms) |
| sof-some_arch-tplg | IPC4 topology files (for some_arch only) |
| sof-some_other_arch-tplg | IPC4 topology files (for some_other_arch only) |
Is there really anything broken with the current layout for MTL/LNL?
Apart from not scalable and going to be a confusing mess over time, no, nothing.
But let's say we will transition to a new and better IPC version, let's say IPC5 and we are fortunate that ACE can be supported by it. Then what? How sof-ace-tplg is not for IPC5 but only IPC4?
The new IPC version is hypothetical, just for highlighting the non scalability of what we have.
What is wrong with my proposal?
| Directory | Content |
|---|---|
| sof | IPC3 firmware files |
| sof-tplg | IPC3 topology files |
| sof-ipc4 | IPC4 firmware files (ACE1/ACE2/CAVS2.5/some_arch/some_other_arch) |
| sof-ipc4-tplg | IPC4 topology files (ACE1/ACE2/CAVS2.5/some_arch/some_other_arch) |
| sof-ace-tplg | symlink to sof-ipc4-tplg for backwards compatibility (to be kept for few years) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"sof-ace-tplg symlink to sof-ipc4-tplg for backwards compatibility (to be kept for few years)"
To be clear, we have NO PLANS to change the IPC4 default path in the kernel files, do we? That would mean that the sof-ace-tplg path will have to be maintained forever
We also have NO PLANS to change the IPC type for MTL/LNL, so I am not sure that the scalability issue is a problem we need to solve.
What we do know is that we have to avoid a conflict for the next generations, but that doesn't mean we need to align and risk breaking existing stuff with late changes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"sof-ace-tplg symlink to sof-ipc4-tplg for backwards compatibility (to be kept for few years)"
To be clear, we have NO PLANS to change the IPC4 default path in the kernel files, do we? That would mean that the sof-ace-tplg path will have to be maintained forever
I would change the path in kernel after the second sof-bin release with the sof-ipc4-tplg + sof-ace-tplg symlink.
Distros update the sof-firmware and in case of issue we always ask for updated sof-bin.
We also have NO PLANS to change the IPC type for MTL/LNL, so I am not sure that the scalability issue is a problem we need to solve.
That was hypothetical note.
What we do know is that we have to avoid a conflict for the next generations, but that doesn't mean we need to align and risk breaking existing stuff with late changes.
We can have a consistent location with minimal effort today, tomorrow it is not going to be possible and we will have an inconsistent mess to manage for eternity.
plbossartJan 10, 2024 •
edited
Loading Uh oh!
There was an error while loading. Please reload this page.
edited
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why do you need to change the path in kernel? That's asking for trouble with multiple versions of the kernel pointing to different locations.
Also why would we need to track all versions of SOC at the topology level? We should only do so if there's a good reason where the compatibility with previous solution needs to be broken.
My counter proposal would be
sof-ipc4-tplg/
all existing cavs stuff without any further redirections
ace/ all topologies for MTL and LNL (i.e this covers ace1.x and ace2.x)
aceN/ topologies for the first 'N' version that is no longer compatible with the 'ace' topologies
sof-ace-tplg/ symlink for sof-ipc4-tplg/ace
We have a similar handling for the PCI devices, we group them in the same files until we can't because they require different handling. No need to track each SOC separately if we can avoid doing so.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.