ext_manifest: Add UUID dictionary#17
Conversation
3f2301c to
8238721
Compare
sec_buffer allocated in elf_read_section() should be free before function quit Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
lgirdwood
left a comment
There was a problem hiding this comment.
@plbossart @kv2019i can you confirm if kernel is doing the UUID translations
| const char *section_name) | ||
| { | ||
| struct ext_man_elem_header* head = NULL; | ||
| uint8_t *meta_buff = *metadata_buff; |
There was a problem hiding this comment.
There was a problem hiding this comment.
@lgirdwood The code is not merged yet to kernel, but my understanding what is passed is a key to the dictionary, not an actual address. @keyonjie @ktrzcinx can you clarify?
There was a problem hiding this comment.
Yes, it is only a index-liked "key", not the real memory address, those real 16 Bytes UUIDs are not stored in DSP SRAM actually. @mmaka1 please correct me if I am wrong.
There was a problem hiding this comment.
This is address of UUID entry, from invalid memory region (0x1FFFA000 is already used as start address, but it's fully configurable in linker script) - so dereference leads to firmware crash. This address is used as UUID element identifier/representation from FW side because full UUID value is inaccessible from there. So this address is UUID dictionary key value.
There was a problem hiding this comment.
ok, can you update the commit messages, inline comments and PR description to use key/index rather than address.
After change there will be possibility to pass pointer to sec_buffer_size as rw pointer to another function. Moreover remove offset variable, because of usage in single place. Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
Such a split will allow to add dictionary elements with list of elements placed in particular elf section - because of possibility to calculate sizeof of this section. Moreover with such an approach, it is possible to define list of mandatory extended manifest elements, which will be checked after each build for each supported platform. Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
Such a dictionary will be used in kernel code to translate UUID value to UUID dictionary key used in DSP in runtime. Translation will be used for the process component creation and runtime trace filtering. Because there is no way to put right size to this extended element header, list of uuid entries are located in separate section to allow convenient size calculation from rimage level. Extract common header with simple, generic preprocessor functions. Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
|
This solution was rejected, full UUID will be passed during building topology. |
Such a dictionary will be used in kernel code to translate UUID value
to UUID dictionary key used in DSP in runtime.
Translation will be used for the process component creation and
runtime trace filtering.
Because there is no way to put right size to this extended element
header, list of uuid entries are located in separate section to
allow convenient size calculation from rimage level.
Extract common header with simple, generic preprocessor functions.
This PR is related with thesofproject/sof#2914.