Uh oh!
There was an error while loading. Please reload this page.
ipc4: add get &set large config support - #4808
Conversation
5fb7987 to
12e29dcCompareThere was a problem hiding this comment.
Out of curiosity, what is basefw? Can you add some details in the commit message.
There was a problem hiding this comment.
sure. There are three types of elf binary in SOF: boot_loader, basefw (built from all sof entities selected in kconfig) and external libraries (developed by 3rd party, may be close source). Rimage packs boot_loader and basefw into sof-xxx.ri
lgirdwood
left a comment
There was a problem hiding this comment.
ABI needs packed and aligned. Open on the data whether it's manifest or not ?
There was a problem hiding this comment.
Is this part of the extended manifest ?
There was a problem hiding this comment.
no, it is part of base fw.
There was a problem hiding this comment.
the comments for IPC4_MEMORY_RECLAIMED_FW_CFG is "Indicates whether legacy DMA memory is managed by FW". A little confusing. In my opinion, the legacy DMA should be GPDMA on BDW and BYT to transfer data between host and dsp.
There was a problem hiding this comment.
I also checked other items and manifest. these items are not included by manifest.
There was a problem hiding this comment.
ok, so it's sent to host upon boot ? This is probably not a good use of memory, but this can be optimised via ipc tuples later on.
There was a problem hiding this comment.
yes, host query these values upon boot. Some items are read from hw registers, so we can't set them in manifest. We can store these tuples in dynamic memory and free it when get function return since get function is a low-frequency case.
There was a problem hiding this comment.
ok, this should be in short term.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
12e29dc to
9db3b8aCompare9db3b8a to
a39ea2eCompareThere was a problem hiding this comment.
ok, so it's sent to host upon boot ? This is probably not a good use of memory, but this can be optimised via ipc tuples later on.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
672ff94 to
e7dcaf8Compare
lgirdwood
left a comment
There was a problem hiding this comment.
All the IPC ABI structs need to be packed and aligned of 4 bytes.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
RanderWang
commented
Oct 11, 2021
thanks, updated |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
bitfields in IPC definition, who thought that was a good idea? Not portable!
There was a problem hiding this comment.
agree, however we have already stated this is not portable. We can address this with ipc-tuples in the future.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
4faab3c to
e71e88eCompareThe module id of basefw is zero. Driver get & set global states by this id, such as platform info, memory inf, hw info, power info. There are three types of elf binary built by SOF: boot_loader, basefw which is built from all sof entities selected in kconfig and external libraries developed by 3rd party and may be close-source. Rimage packs boot_loader and basefw into sof-xxx.ri. This patch adds limited support of features in basefw module and more features will be added in future. Signed-off-by: Rander Wang <rander.wang@intel.com>
RanderWang
commented
Oct 12, 2021
updated, thanks! |
lgirdwood
left a comment
There was a problem hiding this comment.
I think we just need that comments for the error flow and a statement about the portability of the bitfields (if not already in the header)
Uh oh!
There was an error while loading. Please reload this page.
RanderWang
commented
Oct 14, 2021
updated, thanks! |
Get_large_config is used for driver to query module information and set_large_config is used to change module config dynamically Signed-off-by: Rander Wang <rander.wang@intel.com>
Ipc4 checks manifest in fw binary, so it needs to use header files in rimage Signed-off-by: Rander Wang <rander.wang@intel.com>
lgirdwood
commented
Oct 14, 2021
BYT test looks like script failure, but unrelated to this PR. |
| /* skip basefw of module 0 in manifest */ | ||
| mod = (struct sof_man_module *)((char *)desc + SOF_MAN_MODULE_OFFSET(module_id)); | ||
| mod = (struct sof_man_module *)((char *)desc + SOF_MAN_MODULE_OFFSET(entry_index)); |
There was a problem hiding this comment.
Will IPC4 ever be used with Zephyr? Zephyr CI does not have rimage right now.
Should these definitions be copied to src/platform/intel/cavs/include/cavs/ext_manifest.h ?
Will the kernel too? Are they part of the IPC?
There was a problem hiding this comment.
IPC4 is not used by Zephyr currently. They are part of manifest in FW image in memory, not ext manifest.
There was a problem hiding this comment.
Thanks @ranj063 for answering my question offline. IPC4 will be the default for some future platforms Zephyr or not. Zephyr has no effect on that decision / timeline. This means SOF will have a harder dependency on rimage than now and it will have to be mirrored by Zephyr. Right now only the main SOF ELF file does not depend on it, only the boot_module and base_module builds depend on rimage.
If rimage becomes a harder SOF dependency then it means sof/src/include/kernel/ext_manifest.h can probably be deleted at that time?
cc: @dbaluta
The module id of basefw is zero. Driver get & set global
states by this id, such as platform info, memory inf, hw
info, power info.
This patch add limited support of features in basefw module.
Signed-off-by: Rander Wang rander.wang@intel.com