-
Notifications
You must be signed in to change notification settings - Fork 349
ext_manifest: ipc msg size and cavs lpro info #2893
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
Conversation
55ae488 to
f43fb16
Compare
f43fb16 to
a58de06
Compare
a58de06 to
04ecc0e
Compare
src/include/kernel/ext_manifest.h
Outdated
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.
This cant be fixed size otherwise it's an ABI change. The number of elems needs to be variable size.
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.
This is local variable, kernel will still use only .hdr.elem_size
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.
ok, but we should use ARRAY_SIZE() instead of this.
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.
hmm, we cant use ARRAY_SIZE() with enum. What about moving this define to enum list and there will be something like EXT_MAN_CONFIG_LAST_ELEM always at the end of enum? So this value will describe enum size and there will be no need to increase _NUM like now
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.
@lgirdwood please check now
04ecc0e to
d66c713
Compare
|
@abonislawski do you have a PR for the kernel ? |
d66c713 to
e166399
Compare
|
Changed EXT_MAN_ELEM_CONFIG_DATA to 5 because there will be EXT_MAN_ELEM_DBG_ABI with 4 @lgirdwood no PR for kernel, need someone from kernel side to use this data. but thats not a blocker anyway |
@abonislawski Great, thanks |
|
@lgirdwood wrote: Hmm, according to the old (but still effective) ABI process, we need to have kernel side update of headers merged at the same time and there is no kernel PR, so we can't progress. It would seem this is a change, that as per the proposed new model, would qualify as something that can be merged without driver change, but alas the process update is not approved yet, so we should go with the old one still. |
|
We have some piled ABI backlog. @plbossart @ranj063 @bardliao are you ok wtih moving this PR to the new ABI process? To me this seems ready to go and we do not need a matching kernel PR if we do the review here. But as this PR was started in "old times", I'd like to have an explicit ack from you. Normally a single kernel maintainer approval is ok to qualify. |
go for it. |
kv2019i
left a comment
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.
@lgirdwood we are good to go with this and we handle this in the new process. Kernel PR will come later when the feature is taken into use.
src/include/kernel/ext_manifest.h
Outdated
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.
@abonislawski while talking to @fredoh9 about his PR, we realized that since the elems array has a fixed size of EXT_MAN_CONFIG_LAST_ELEM, the array will have to populated with the right tokens to not parse invalid elems as CAVS_LPRO tokens. So I think the elem type should start with a 1 instead. What do you think?
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.
@ranj063 yes, looks like a real issue. Thanks for spotting this, I will change to 1
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.
I saw your change, I will update mine and test it again
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.
@fredoh9 thanks
e166399 to
922005d
Compare
src/include/kernel/ext_manifest.h
Outdated
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.
doesn't this structure have to be packed? and same question to const struct ext_man_config_data ext_man_config below
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.
both of members are uint32_t so no issues but actually yes, it should, I will update
922005d to
61fb733
Compare
ranj063
left a comment
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.
@abonislawski @fredoh9 thinking more about this PR, I realized that we shouldnt be adding intel-specific types in the common layer for the ext manifest. These should be platform-specific in the FW and should be parsed in the platform-specific code in the kernel side as well. This way future platforms can also have their own set of elem types that wont be needed to be dealt with in current platforms,
|
@abonislawski @fredoh9 ping - UUID is merged so we ABI merges happening now. Can you make the updates suggested by @ranj063 thanks |
|
@abonislawski ping |
|
@ranj063 @lgirdwood sorry for late response, so in this case we want to move EXT_MAN_CONFIG_CAVS_LPRO to platform specific code? |
@abonislawski Im thinking that the CONFIG_DATA be key/value pairs up to a max number of elems. But whats written into the key, ex: CONFIG_CAVS_LPRO should be in platform specific code and the parsing for what the key stands for would be handled in the platform-specific code in the driver as well |
61fb733 to
e3dad31
Compare
To avoid lots of single value structures this will introduce config data element which will contain several simple token/value pairs At initial version it will contain IPC_MSG_SIZE elem which will inform kernel about maximum IPC msg size Signed-off-by: Adrian Bonislawski <adrian.bonislawski@linux.intel.com>
At initial version it will add CAVS_LPRO for CAVS platforms, OUTBOX_SIZE and INBOX_SIZE Signed-off-by: Adrian Bonislawski <adrian.bonislawski@linux.intel.com>
e3dad31 to
07775da
Compare
ranj063
left a comment
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.
LGTM now, @abonislawski . Thanks again!
This will add to ext_manifest ipc msg size and cavs lpro informations