Skip to content

Conversation

@abonislawski
Copy link
Member

This will add to ext_manifest ipc msg size and cavs lpro informations

@abonislawski abonislawski requested a review from ktrzcinx April 29, 2020 08:22
@abonislawski abonislawski changed the title etx_manifest: ipc msg size and cavs lpro info ext_manifest: ipc msg size and cavs lpro info Apr 29, 2020
Copy link
Member

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.

Copy link
Member Author

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

Copy link
Member

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.

Copy link
Member Author

@abonislawski abonislawski May 27, 2020

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

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@lgirdwood please check now

@lgirdwood lgirdwood added the ABI ABI change involved label Jun 1, 2020
@lgirdwood
Copy link
Member

@abonislawski do you have a PR for the kernel ?

@abonislawski
Copy link
Member Author

abonislawski commented Jun 1, 2020

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.
As I know @ranj063 will need LPRO info for iccmax
not sure about ipc msg size

but thats not a blocker anyway

@ktrzcinx
Copy link
Member

ktrzcinx commented Jun 1, 2020

Changed EXT_MAN_ELEM_CONFIG_DATA to 5 because there will be EXT_MAN_ELEM_DBG_ABI with 4

@abonislawski Great, thanks

@lgirdwood
Copy link
Member

@ranj063 @kv2019i can someone approve this on kernel side.

@kv2019i
Copy link
Collaborator

kv2019i commented Jun 11, 2020

@lgirdwood wrote:

@ranj063 @kv2019i can someone approve this on kernel side.

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.

@lgirdwood lgirdwood added this to the ABI-3.17 milestone Jun 12, 2020
@kv2019i
Copy link
Collaborator

kv2019i commented Jul 9, 2020

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.

@plbossart
Copy link
Member

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.

Copy link
Collaborator

@kv2019i kv2019i left a 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.

Copy link
Collaborator

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?

Copy link
Member Author

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

Copy link
Contributor

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

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@fredoh9 thanks

Copy link
Contributor

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

Copy link
Member Author

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

Copy link
Collaborator

@ranj063 ranj063 left a 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,

@lgirdwood
Copy link
Member

@abonislawski @fredoh9 ping - UUID is merged so we ABI merges happening now. Can you make the updates suggested by @ranj063 thanks

@lgirdwood
Copy link
Member

@abonislawski ping

@abonislawski
Copy link
Member Author

@ranj063 @lgirdwood sorry for late response, so in this case we want to move EXT_MAN_CONFIG_CAVS_LPRO to platform specific code?
In this case one simple EXT_MAN_ELEM_CONFIG_DATA for key-value fields will be not enough, we will need another elem like EXT_MAN_ELEM_CAVS_CONFIG_DATA which will contain only CAVS_LPRO, is that right?

@ranj063
Copy link
Collaborator

ranj063 commented Aug 11, 2020

@ranj063 @lgirdwood sorry for late response, so in this case we want to move EXT_MAN_CONFIG_CAVS_LPRO to platform specific code?
In this case one simple EXT_MAN_ELEM_CONFIG_DATA for key-value fields will be not enough, we will need another elem like EXT_MAN_ELEM_CAVS_CONFIG_DATA which will contain only CAVS_LPRO, is that right?

@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

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>
@abonislawski
Copy link
Member Author

@ranj063 @fredoh9 PR updated

Copy link
Collaborator

@ranj063 ranj063 left a 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!

@lgirdwood lgirdwood merged commit 3049956 into thesofproject:master Aug 14, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ABI ABI change involved

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants