diff --git a/lmdk/libraries/dummy/dummy_mtl.toml b/lmdk/libraries/dummy/dummy_mtl.toml index 3094e10f3396..58b3820331fa 100644 --- a/lmdk/libraries/dummy/dummy_mtl.toml +++ b/lmdk/libraries/dummy/dummy_mtl.toml @@ -60,7 +60,7 @@ count = 1 [[module.entry]] name = "DUMMY" - uuid = "01010101-0101-0101-0101-010101010101" + uuid = "01234567-89AB-CDEF-0102-030405060708" affinity_mask = "0x1" instance_count = "15" domain_types = "0" diff --git a/lmdk/modules/dummy/dummy.c b/lmdk/modules/dummy/dummy.c index 7c9f49289542..de126062bad0 100644 --- a/lmdk/modules/dummy/dummy.c +++ b/lmdk/modules/dummy/dummy.c @@ -18,7 +18,8 @@ __attribute__((section(".module"))) const struct sof_man_module_manifest dummy_module_manifest = { .module = { .name = "DUMMY", - .uuid = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + .uuid = { 0x01234567, 0x89AB, 0xCDEF, { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08 }}, .entry_point = (uint32_t)dummyPackageEntryPoint, .type = { .load_type = SOF_MAN_MOD_TYPE_MODULE, diff --git a/src/audio/aria/aria.c b/src/audio/aria/aria.c index 7fe6e319e79a..85dc7b64719f 100644 --- a/src/audio/aria/aria.c +++ b/src/audio/aria/aria.c @@ -319,13 +319,10 @@ SOF_MODULE_INIT(aria, sys_comp_module_aria_interface_init); #include #include -#define UUID_ARIA 0x6D, 0x16, 0xF7, 0x99, 0x2C, 0x37, 0xEF, 0x43, 0xF6, 0x81, \ - 0x22, 0x00, 0x7A, 0xA1, 0x5F, 0x03 - SOF_LLEXT_MOD_ENTRY(aria, &aria_interface); static const struct sof_man_module_manifest mod_manifest __section(".module") __used = - SOF_LLEXT_MODULE_MANIFEST("ARIA", aria_llext_entry, 1, UUID_ARIA, 8); + SOF_LLEXT_MODULE_MANIFEST("ARIA", aria_llext_entry, 1, SOF_REG_UUID(aria), 8); SOF_LLEXT_BUILDINFO; diff --git a/src/audio/asrc/asrc.c b/src/audio/asrc/asrc.c index 45a0acc81bfb..ea72e50bf92d 100644 --- a/src/audio/asrc/asrc.c +++ b/src/audio/asrc/asrc.c @@ -879,12 +879,10 @@ SOF_MODULE_INIT(asrc, sys_comp_module_asrc_interface_init); #include #include -#define UUID_ASRC 0x2d, 0x40, 0xb4, 0x66, 0x68, 0xb4, 0xf2, 0x42, \ - 0x81, 0xa7, 0xb3, 0x71, 0x21, 0x86, 0x3d, 0xd4 SOF_LLEXT_MOD_ENTRY(asrc, &asrc_interface); static const struct sof_man_module_manifest mod_manifest[] __section(".module") __used = { - SOF_LLEXT_MODULE_MANIFEST("ASRC", asrc_llext_entry, 1, UUID_ASRC, 2), + SOF_LLEXT_MODULE_MANIFEST("ASRC", asrc_llext_entry, 1, SOF_REG_UUID(asrc4), 2), }; SOF_LLEXT_BUILDINFO; diff --git a/src/audio/codec/dts/dts.c b/src/audio/codec/dts/dts.c index c61ac2b8ef00..0563ea130599 100644 --- a/src/audio/codec/dts/dts.c +++ b/src/audio/codec/dts/dts.c @@ -478,13 +478,10 @@ SOF_MODULE_INIT(dts, sys_comp_module_dts_interface_init); #include #include -#define UUID_DTS 0x4F, 0xC3, 0x5F, 0xD9, 0x0F, 0x37, 0xC7, 0x4A, 0x86, 0xBC, \ - 0xBF, 0xDC, 0x5B, 0xE2, 0x41, 0xE6 - SOF_LLEXT_MOD_ENTRY(dts, &dts_interface); static const struct sof_man_module_manifest mod_manifest __section(".module") __used = - SOF_LLEXT_MODULE_MANIFEST("DTS", dts_llext_entry, 1, UUID_DTS, 40); + SOF_LLEXT_MODULE_MANIFEST("DTS", dts_llext_entry, 1, SOF_REG_UUID(dts), 40); SOF_LLEXT_BUILDINFO; diff --git a/src/audio/crossover/crossover.c b/src/audio/crossover/crossover.c index dae27ff12b56..3c91c329a2f4 100644 --- a/src/audio/crossover/crossover.c +++ b/src/audio/crossover/crossover.c @@ -639,13 +639,10 @@ SOF_MODULE_INIT(crossover, sys_comp_module_crossover_interface_init); #include #include -#define UUID_CROSSOVER 0xD1, 0x9A, 0x8C, 0x94, 0x6A, 0x80, 0x31, 0x41, 0x6C, 0xAD, \ - 0xB2, 0xBD, 0xA9, 0xE3, 0x5A, 0x9F - SOF_LLEXT_MOD_ENTRY(crossover, &crossover_interface); static const struct sof_man_module_manifest mod_manifest __section(".module") __used = - SOF_LLEXT_MODULE_MANIFEST("XOVER", crossover_llext_entry, 1, UUID_CROSSOVER, 40); + SOF_LLEXT_MODULE_MANIFEST("XOVER", crossover_llext_entry, 1, SOF_REG_UUID(crossover), 40); SOF_LLEXT_BUILDINFO; diff --git a/src/audio/dcblock/dcblock.c b/src/audio/dcblock/dcblock.c index 4d4888d8b4f8..180a71099825 100644 --- a/src/audio/dcblock/dcblock.c +++ b/src/audio/dcblock/dcblock.c @@ -264,13 +264,10 @@ SOF_MODULE_INIT(dcblock, sys_comp_module_dcblock_interface_init); #include #include -#define UUID_DCBLOCK 0xAF, 0xEF, 0x09, 0xB8, 0x81, 0x56, 0xB1, 0x42, 0xD6, 0x9E, \ - 0x04, 0xBB, 0x01, 0x2D, 0xD3, 0x84 - SOF_LLEXT_MOD_ENTRY(dcblock, &dcblock_interface); static const struct sof_man_module_manifest mod_manifest __section(".module") __used = - SOF_LLEXT_MODULE_MANIFEST("DCBLOCK", dcblock_llext_entry, 1, UUID_DCBLOCK, 40); + SOF_LLEXT_MODULE_MANIFEST("DCBLOCK", dcblock_llext_entry, 1, SOF_REG_UUID(dcblock), 40); SOF_LLEXT_BUILDINFO; diff --git a/src/audio/drc/drc.c b/src/audio/drc/drc.c index 000e804cbd00..04734a2384d4 100644 --- a/src/audio/drc/drc.c +++ b/src/audio/drc/drc.c @@ -410,13 +410,10 @@ SOF_MODULE_INIT(drc, sys_comp_module_drc_interface_init); #include #include -#define UUID_DRC 0xda, 0xe4, 0x6e, 0xb3, 0x6f, 0x00, 0xf9, 0x47, \ - 0xa0, 0x6d, 0xfe, 0xcb, 0xe2, 0xd8, 0xb6, 0xce - SOF_LLEXT_MOD_ENTRY(drc, &drc_interface); static const struct sof_man_module_manifest mod_manifest __section(".module") __used = - SOF_LLEXT_MODULE_MANIFEST("DRC", drc_llext_entry, 1, UUID_DRC, 40); + SOF_LLEXT_MODULE_MANIFEST("DRC", drc_llext_entry, 1, SOF_REG_UUID(drc), 40); SOF_LLEXT_BUILDINFO; diff --git a/src/audio/eq_fir/eq_fir.c b/src/audio/eq_fir/eq_fir.c index b02c104cdf89..3380d79047de 100644 --- a/src/audio/eq_fir/eq_fir.c +++ b/src/audio/eq_fir/eq_fir.c @@ -488,13 +488,10 @@ SOF_MODULE_INIT(eq_fir, sys_comp_module_eq_fir_interface_init); #include #include -#define UUID_EQFIR 0xe7, 0x0c, 0xa9, 0x43, 0xa5, 0xf3, 0xdf, 0x41, \ - 0xac, 0x06, 0xba, 0x98, 0x65, 0x1a, 0xe6, 0xa3 - SOF_LLEXT_MOD_ENTRY(eq_fir, &eq_fir_interface); static const struct sof_man_module_manifest mod_manifest __section(".module") __used = - SOF_LLEXT_MODULE_MANIFEST("EQFIR", eq_fir_llext_entry, 1, UUID_EQFIR, 40); + SOF_LLEXT_MODULE_MANIFEST("EQFIR", eq_fir_llext_entry, 1, SOF_REG_UUID(eq_fir), 40); SOF_LLEXT_BUILDINFO; diff --git a/src/audio/eq_iir/eq_iir.c b/src/audio/eq_iir/eq_iir.c index e11d9454433b..96d4899ed643 100644 --- a/src/audio/eq_iir/eq_iir.c +++ b/src/audio/eq_iir/eq_iir.c @@ -258,13 +258,10 @@ SOF_MODULE_INIT(eq_iir, sys_comp_module_eq_iir_interface_init); #include #include -#define UUID_EQIIR 0xE6, 0xC0, 0x50, 0x51, 0xF9, 0x27, 0xC8, 0x4E, \ - 0x83, 0x51, 0xC7, 0x05, 0xB6, 0x42, 0xD1, 0x2F - SOF_LLEXT_MOD_ENTRY(eq_iir, &eq_iir_interface); static const struct sof_man_module_manifest mod_manifest __section(".module") __used = - SOF_LLEXT_MODULE_MANIFEST("EQIIR", eq_iir_llext_entry, 1, UUID_EQIIR, 40); + SOF_LLEXT_MODULE_MANIFEST("EQIIR", eq_iir_llext_entry, 1, SOF_REG_UUID(eq_iir), 40); SOF_LLEXT_BUILDINFO; diff --git a/src/audio/google/google_ctc_audio_processing.c b/src/audio/google/google_ctc_audio_processing.c index 12ecac66f8a7..8639e598dd04 100644 --- a/src/audio/google/google_ctc_audio_processing.c +++ b/src/audio/google/google_ctc_audio_processing.c @@ -466,14 +466,11 @@ SOF_MODULE_INIT(google_ctc_audio_processing, #include #include -#define UUID_GOOGLE_CTC 0xBC, 0x1B, 0x0E, 0xBF, 0x6A, 0xDC, 0xFE, 0x45, 0x90, 0xBC, \ - 0x25, 0x54, 0xCB, 0x13, 0x7A, 0xB4 - SOF_LLEXT_MOD_ENTRY(google_ctc_audio_processing, &google_ctc_audio_processing_interface); static const struct sof_man_module_manifest mod_manifest __section(".module") __used = SOF_LLEXT_MODULE_MANIFEST("CTC", google_ctc_audio_processing_llext_entry, - 1, UUID_GOOGLE_CTC, 40); + 1, SOF_REG_UUID(google_ctc_audio_processing), 40); SOF_LLEXT_BUILDINFO; diff --git a/src/audio/google/google_rtc_audio_processing.c b/src/audio/google/google_rtc_audio_processing.c index c84cadb4c5c8..da673b7e52fa 100644 --- a/src/audio/google/google_rtc_audio_processing.c +++ b/src/audio/google/google_rtc_audio_processing.c @@ -861,14 +861,11 @@ SOF_MODULE_INIT(google_rtc_audio_processing, #include #include -#define UUID_GOOGLE_RTC_AEC 0xA6, 0xA0, 0x80, 0xB7, 0x9F, 0x26, 0x6F, 0x46, 0x77, 0xB4, \ - 0x23, 0xDF, 0xA0, 0x5A, 0xF7, 0x58 - SOF_LLEXT_MOD_ENTRY(google_rtc_audio_processing, &google_rtc_audio_processing_interface); static const struct sof_man_module_manifest mod_manifest __section(".module") __used = SOF_LLEXT_MODULE_MANIFEST("RTC_AEC", google_rtc_audio_processing_llext_entry, - 7, UUID_GOOGLE_RTC_AEC, 1); + 7, SOF_REG_UUID(google_rtc_audio_processing), 1); SOF_LLEXT_BUILDINFO; diff --git a/src/audio/igo_nr/igo_nr.c b/src/audio/igo_nr/igo_nr.c index 78eead2b1e97..1750b5972508 100644 --- a/src/audio/igo_nr/igo_nr.c +++ b/src/audio/igo_nr/igo_nr.c @@ -893,13 +893,10 @@ SOF_MODULE_INIT(igo_nr, sys_comp_module_igo_nr_interface_init); #include #include -#define UUID_IGO_NR 0xBC, 0xE2, 0x6A, 0x69, 0x77, 0x28, 0xEB, 0x11, 0xC1, 0xAD, \ - 0x02, 0x42, 0xAC, 0x12, 0x00, 0x02 - SOF_LLEXT_MOD_ENTRY(igo_nr, &igo_nr_interface); static const struct sof_man_module_manifest mod_manifest __section(".module") __used = - SOF_LLEXT_MODULE_MANIFEST("IGO_NR", igo_nr_llext_entry, 1, UUID_IGO_NR, 40); + SOF_LLEXT_MODULE_MANIFEST("IGO_NR", igo_nr_llext_entry, 1, SOF_REG_UUID(igo_nr), 40); SOF_LLEXT_BUILDINFO; diff --git a/src/audio/mfcc/mfcc.c b/src/audio/mfcc/mfcc.c index 964b4bae7d38..489df60c40b3 100644 --- a/src/audio/mfcc/mfcc.c +++ b/src/audio/mfcc/mfcc.c @@ -266,13 +266,10 @@ SOF_MODULE_INIT(mfcc, sys_comp_module_mfcc_interface_init); #include #include -#define UUID_MFCC 0x73, 0xA7, 0x10, 0xDB, 0xA4, 0x1A, 0xEA, 0x4C, 0x1F, 0xA2, \ - 0x2D, 0x57, 0xA5, 0xC9, 0x82, 0xEB - SOF_LLEXT_MOD_ENTRY(mfcc, &mfcc_interface); static const struct sof_man_module_manifest mod_manifest __section(".module") __used = - SOF_LLEXT_MODULE_MANIFEST("MFCC", mfcc_llext_entry, 1, UUID_MFCC, 40); + SOF_LLEXT_MODULE_MANIFEST("MFCC", mfcc_llext_entry, 1, SOF_REG_UUID(mfcc), 40); SOF_LLEXT_BUILDINFO; diff --git a/src/audio/mixin_mixout/mixin_mixout.c b/src/audio/mixin_mixout/mixin_mixout.c index 94a61c89d097..fe9120946dec 100644 --- a/src/audio/mixin_mixout/mixin_mixout.c +++ b/src/audio/mixin_mixout/mixin_mixout.c @@ -949,18 +949,13 @@ SOF_MODULE_INIT(mixout, sys_comp_module_mixout_interface_init); #include #include -#define UUID_MIXIN 0xB2, 0x6E, 0x65, 0x39, 0x71, 0x3B, 0x49, 0x40, \ - 0x8D, 0x3F, 0xF9, 0x2C, 0xD5, 0xC4, 0x3C, 0x09 -#define UUID_MIXOUT 0x5A, 0x50, 0x56, 0x3C, 0xD7, 0x24, 0x8F, 0x41, \ - 0xBD, 0xDC, 0xC1, 0xF5, 0xA3, 0xAC, 0x2A, 0xE0 - SOF_LLEXT_MOD_ENTRY(mixin, &mixin_interface); SOF_LLEXT_MOD_ENTRY(mixout, &mixout_interface); static const struct sof_man_module_manifest mod_manifest[] __section(".module") __used = { - SOF_LLEXT_MODULE_MANIFEST("MIXIN", mixin_llext_entry, 1, UUID_MIXIN, 30), - SOF_LLEXT_MODULE_MANIFEST("MIXOUT", mixout_llext_entry, 1, UUID_MIXOUT, 30), + SOF_LLEXT_MODULE_MANIFEST("MIXIN", mixin_llext_entry, 1, SOF_REG_UUID(mixin), 30), + SOF_LLEXT_MODULE_MANIFEST("MIXOUT", mixout_llext_entry, 1, SOF_REG_UUID(mixout), 30), }; SOF_LLEXT_BUILDINFO; diff --git a/src/audio/module_adapter/module/waves/waves.c b/src/audio/module_adapter/module/waves/waves.c index 4f606fd594dd..ee45c7077405 100644 --- a/src/audio/module_adapter/module/waves/waves.c +++ b/src/audio/module_adapter/module/waves/waves.c @@ -907,15 +907,10 @@ SOF_MODULE_INIT(waves, sys_comp_module_waves_interface_init); #include #include -/* d944281a-afe9-4695-a043-d7f62b89538e */ -#define UUID_WAVES_CODEC 0x1A, 0x28, 0x44, 0xD9, 0xE9, 0xAF, 0x95, 0x46, \ - 0xA0, 0x43, 0xD7, 0xF6, 0x2B, 0x89, 0x53, 0x8E - SOF_LLEXT_MOD_ENTRY(waves, &waves_interface); static const struct sof_man_module_manifest mod_manifest __section(".module") __used = - SOF_LLEXT_MODULE_MANIFEST("WAVES", waves_llext_entry, - 7, UUID_WAVES_CODEC, 8); + SOF_LLEXT_MODULE_MANIFEST("WAVES", waves_llext_entry, 7, SOF_REG_UUID(waves), 8); SOF_LLEXT_BUILDINFO; diff --git a/src/audio/multiband_drc/multiband_drc.c b/src/audio/multiband_drc/multiband_drc.c index 3ffe8e0f511e..f948e3354e33 100644 --- a/src/audio/multiband_drc/multiband_drc.c +++ b/src/audio/multiband_drc/multiband_drc.c @@ -426,13 +426,11 @@ SOF_MODULE_INIT(multiband_drc, sys_comp_module_multiband_drc_interface_init); #include #include -#define UUID_MULTIBAND_DRC 0x56, 0x22, 0x9F, 0x0D, 0x4F, 0x8E, 0xB3, 0x47, 0x48, 0x84, \ - 0x23, 0x9A, 0x33, 0x4F, 0x11, 0x91 - SOF_LLEXT_MOD_ENTRY(multiband_drc, &multiband_drc_interface); static const struct sof_man_module_manifest mod_manifest __section(".module") __used = - SOF_LLEXT_MODULE_MANIFEST("MB_DRC", multiband_drc_llext_entry, 1, UUID_MULTIBAND_DRC, 40); + SOF_LLEXT_MODULE_MANIFEST("MB_DRC", multiband_drc_llext_entry, 1, + SOF_REG_UUID(multiband_drc), 40); SOF_LLEXT_BUILDINFO; diff --git a/src/audio/mux/mux.c b/src/audio/mux/mux.c index 8d65b2b2698d..79280e376220 100644 --- a/src/audio/mux/mux.c +++ b/src/audio/mux/mux.c @@ -482,24 +482,20 @@ SOF_MODULE_INIT(demux, sys_comp_module_demux_interface_init); #include #include -#define UUID_MUX 0x35, 0x6E, 0xCE, 0x64, 0x7A, 0x85, 0x78, 0x48, 0xE8, 0xAC, \ - 0xE2, 0xA2, 0xF4, 0x2E, 0x30, 0x69 SOF_LLEXT_MOD_ENTRY(mux, &mux_interface); /* * The demux entry is removed because mtl.toml doesn't have an entry * for it. Once that is fixed, the manifest line below can be * re-activated: - * #define UUID_DEMUX 0x68, 0x68, 0xB2, 0xC4, 0x30, 0x14, 0x0E, 0x47, 0x89, 0xA0, \ - * 0x15, 0xD1, 0xC7, 0x7F, 0x85, 0x1A * SOF_LLEXT_MOD_ENTRY(demux, &demux_interface); */ static const struct sof_man_module_manifest mod_manifest[] __section(".module") __used = { - SOF_LLEXT_MODULE_MANIFEST("MUX", mux_llext_entry, 1, UUID_MUX, 15), + SOF_LLEXT_MODULE_MANIFEST("MUX", mux_llext_entry, 1, SOF_REG_UUID(mux4), 15), /* * See comment above for a demux deactivation reason - * SOF_LLEXT_MODULE_MANIFEST("DEMUX", demux_llext_entry, 1, UUID_DEMUX, 15), + * SOF_LLEXT_MODULE_MANIFEST("DEMUX", demux_llext_entry, 1, SOF_REG_UUID(demux), 15), */ }; diff --git a/src/audio/rtnr/rtnr.c b/src/audio/rtnr/rtnr.c index 830bbde413e7..2f9fabe43d8a 100644 --- a/src/audio/rtnr/rtnr.c +++ b/src/audio/rtnr/rtnr.c @@ -876,14 +876,10 @@ SOF_MODULE_INIT(rtnr, sys_comp_module_rtnr_interface_init); #include #include -/* 5c7ca334-e15d-11eb-ba800242ac130004 */ -#define UUID_RTNR 0x34, 0xA3, 0x7C, 0x5C, 0x5D, 0xE1, 0xEB, 0x11, \ - 0xBA, 0x80, 0x02, 0x42, 0xAC, 0x13, 0x00, 0x04 - SOF_LLEXT_MOD_ENTRY(rtnr, &rtnr_interface); static const struct sof_man_module_manifest mod_manifest __section(".module") __used = - SOF_LLEXT_MODULE_MANIFEST("RTNR", rtnr_llext_entry, 1, UUID_RTNR, 40); + SOF_LLEXT_MODULE_MANIFEST("RTNR", rtnr_llext_entry, 1, SOF_REG_UUID(rtnr), 40); SOF_LLEXT_BUILDINFO; diff --git a/src/audio/selector/selector.c b/src/audio/selector/selector.c index 8032a3d7dea9..9b9ee5f63d03 100644 --- a/src/audio/selector/selector.c +++ b/src/audio/selector/selector.c @@ -923,13 +923,11 @@ SOF_MODULE_INIT(selector, sys_comp_module_selector_interface_init); #include #include -#define UUID_SELECTOR 0x32, 0xFE, 0x92, 0xC1, 0x17, 0x1E, 0xC2, 0x4F, 0x58, 0x97, \ - 0xC7, 0xF3, 0x54, 0x2E, 0x98, 0x0A - SOF_LLEXT_MOD_ENTRY(selector, &selector_interface); static const struct sof_man_module_manifest mod_manifest __section(".module") __used = - SOF_LLEXT_MODULE_MANIFEST("MICSEL", selector_llext_entry, 1, UUID_SELECTOR, 8); + SOF_LLEXT_MODULE_MANIFEST("MICSEL", selector_llext_entry, 1, SOF_REG_UUID(selector4), + 8); SOF_LLEXT_BUILDINFO; diff --git a/src/audio/src/src.c b/src/audio/src/src.c index d75b1eb53822..68718f747400 100644 --- a/src/audio/src/src.c +++ b/src/audio/src/src.c @@ -89,21 +89,18 @@ SOF_MODULE_INIT(src, sys_comp_module_src_interface_init); #include #include -#define UUID_SRC 0x8D, 0xB2, 0x1B, 0xE6, 0x9A, 0x14, 0x1F, 0x4C, \ - 0xB7, 0x09, 0x46, 0x82, 0x3E, 0xF5, 0xF5, 0xAE SOF_LLEXT_MOD_ENTRY(src, &src_interface); #if CONFIG_COMP_SRC_LITE -#define UUID_SRC_LITE 0x51, 0x10, 0x44, 0x33, 0xCD, 0x44, 0x6A, 0x46, \ - 0x83, 0xA3, 0x17, 0x84, 0x78, 0x70, 0x8A, 0xEA extern const struct module_interface src_lite_interface; SOF_LLEXT_MOD_ENTRY(src_lite, &src_lite_interface); #endif static const struct sof_man_module_manifest mod_manifest[] __section(".module") __used = { - SOF_LLEXT_MODULE_MANIFEST("SRC", src_llext_entry, 1, UUID_SRC, 1), + SOF_LLEXT_MODULE_MANIFEST("SRC", src_llext_entry, 1, SOF_REG_UUID(src4), 1), #if CONFIG_COMP_SRC_LITE - SOF_LLEXT_MODULE_MANIFEST("SRC_LITE", src_lite_llext_entry, 1, UUID_SRC_LITE, 1), + SOF_LLEXT_MODULE_MANIFEST("SRC_LITE", src_lite_llext_entry, 1, SOF_REG_UUID(src_lite), + 1), #endif }; diff --git a/src/audio/tdfb/tdfb.c b/src/audio/tdfb/tdfb.c index dbb99bddb5aa..39f47a61527d 100644 --- a/src/audio/tdfb/tdfb.c +++ b/src/audio/tdfb/tdfb.c @@ -831,13 +831,10 @@ SOF_MODULE_INIT(tdfb, sys_comp_module_tdfb_interface_init); #include #include -#define UUID_TDFB 0x49, 0x17, 0x51, 0xdd, 0xfa, 0xd9, 0x5c, 0x45, 0xb3, 0xa7, \ - 0x13, 0x58, 0x56, 0x93, 0xf1, 0xaf - SOF_LLEXT_MOD_ENTRY(tdfb, &tdfb_interface); static const struct sof_man_module_manifest mod_manifest __section(".module") __used = - SOF_LLEXT_MODULE_MANIFEST("TDFB", tdfb_llext_entry, 1, UUID_TDFB, 40); + SOF_LLEXT_MODULE_MANIFEST("TDFB", tdfb_llext_entry, 1, SOF_REG_UUID(tdfb), 40); SOF_LLEXT_BUILDINFO; diff --git a/src/audio/volume/volume.c b/src/audio/volume/volume.c index b3cf42cf116a..a92f9ccf9047 100644 --- a/src/audio/volume/volume.c +++ b/src/audio/volume/volume.c @@ -820,23 +820,19 @@ SOF_MODULE_INIT(gain, sys_comp_module_gain_interface_init); #include #if CONFIG_COMP_PEAK_VOL -#define UUID_PEAKVOL 0x23, 0x13, 0x17, 0x8a, 0xa3, 0x94, 0x1d, 0x4e, \ - 0xaf, 0xe9, 0xfe, 0x5d, 0xba, 0xa4, 0xc3, 0x93 SOF_LLEXT_MOD_ENTRY(peakvol, &volume_interface); #endif #if CONFIG_COMP_GAIN -#define UUID_GAIN 0xa8, 0xa9, 0xbc, 0x61, 0xd0, 0x18, 0x18, 0x4a, \ - 0x8e, 0x7b, 0x26, 0x39, 0x21, 0x98, 0x04, 0xb7 SOF_LLEXT_MOD_ENTRY(gain, &gain_interface); #endif static const struct sof_man_module_manifest mod_manifest[] __section(".module") __used = { #if CONFIG_COMP_PEAK_VOL - SOF_LLEXT_MODULE_MANIFEST("PEAKVOL", peakvol_llext_entry, 1, UUID_PEAKVOL, 10), + SOF_LLEXT_MODULE_MANIFEST("PEAKVOL", peakvol_llext_entry, 1, SOF_REG_UUID(volume), 10), #endif #if CONFIG_COMP_GAIN - SOF_LLEXT_MODULE_MANIFEST("GAIN", gain_llext_entry, 1, UUID_GAIN, 40), + SOF_LLEXT_MODULE_MANIFEST("GAIN", gain_llext_entry, 1, SOF_REG_UUID(gain), 40), #endif }; diff --git a/src/include/module/module/llext.h b/src/include/module/module/llext.h index 05b8f0ffb5f5..e1d294694280 100644 --- a/src/include/module/module/llext.h +++ b/src/include/module/module/llext.h @@ -10,7 +10,7 @@ { \ .module = { \ .name = manifest_name, \ - .uuid = {mod_uuid}, \ + .uuid = mod_uuid, \ .entry_point = (uint32_t)(entry), \ .instance_max_count = instances, \ .type = { \ diff --git a/src/include/sof/ipc/topology.h b/src/include/sof/ipc/topology.h index 5726b7055b32..5605c6ef9837 100644 --- a/src/include/sof/ipc/topology.h +++ b/src/include/sof/ipc/topology.h @@ -50,7 +50,7 @@ struct ipc_comp_dev; const struct comp_driver *ipc4_get_comp_drv(uint32_t module_id); struct comp_dev *ipc4_get_comp_dev(uint32_t comp_id); int ipc4_add_comp_dev(struct comp_dev *dev); -const struct comp_driver *ipc4_get_drv(const uint8_t *uuid); +const struct comp_driver *ipc4_get_drv(const void *uuid); int ipc4_chain_manager_create(struct ipc4_chain_dma *cdma); int ipc4_chain_dma_state(struct comp_dev *dev, struct ipc4_chain_dma *cdma); int ipc4_create_chain_dma(struct ipc *ipc, struct ipc4_chain_dma *cdma); diff --git a/src/include/sof/lib/uuid.h b/src/include/sof/lib/uuid.h index 7c7691bfff38..d45f821613d7 100644 --- a/src/include/sof/lib/uuid.h +++ b/src/include/sof/lib/uuid.h @@ -50,13 +50,19 @@ * pass UUIDs as a linear array of bytes, only one endianness will * work. If SOF ever ships on a BE system all use of sof_uuid will * need to be modified to byte swap the a/b/c values. + * + * Some identifiers are taken from the module manifest. Since the module + * manifest structure (sof_man_module) is marked as packed, the pointer + * to the sof_uuid structure may not be properly aligned. To avoid possible + * problems with accessing fields of this structure from unaligned addresses, + * it has been marked as packed. */ struct sof_uuid { uint32_t a; uint16_t b; uint16_t c; uint8_t d[8]; -}; +} __packed; #define _UUID_INIT(va, vb, vc, d0, d1, d2, d3, d4, d5, d6, d7) \ { va, vb, vc, { d0, d1, d2, d3, d4, d5, d6, d7 } } @@ -126,6 +132,14 @@ struct sof_uuid_entry { _DEF_UUID(entity_name, uuid_name, \ _UUID_INIT(va, vb, vc, vd0, vd1, vd2, vd3, vd4, vd5, vd6, vd7)) +/** \brief Get UUID value sourced from the fixed SOF registry + * + * The ID value is sourced by name from the uuid-registry.txt file distributed with the source tree. + * + * \param name Name of the UUID, must match an entry in uuid-registry.txt + */ +#define SOF_REG_UUID(name) _UUIDREG_##name + /** \brief Defines UUID sourced from the fixed SOF registry * * As for SOF_DEFINE_UUID(), but the ID value is sourced by name from @@ -136,7 +150,7 @@ struct sof_uuid_entry { * * \param name Name of the UUID, must match an entry in uuid-registry.txt */ -#define SOF_DEFINE_REG_UUID(name) _DEF_UUID(#name, name##_uuid, _UUIDREG_##name) +#define SOF_DEFINE_REG_UUID(name) _DEF_UUID(#name, name##_uuid, SOF_REG_UUID(name)) /** \brief Creates local unique 32-bit representation of UUID structure. * diff --git a/src/ipc/ipc4/helper.c b/src/ipc/ipc4/helper.c index 0dfb4bc73fc2..3e8cfdcf5815 100644 --- a/src/ipc/ipc4/helper.c +++ b/src/ipc/ipc4/helper.c @@ -93,7 +93,7 @@ static inline char *ipc4_get_comp_new_data(void) static const struct comp_driver *ipc4_library_get_comp_drv(char *data) { - return ipc4_get_drv((const uint8_t *)data); + return ipc4_get_drv(data); } #else static inline char *ipc4_get_comp_new_data(void) @@ -773,7 +773,7 @@ int ipc4_chain_manager_create(struct ipc4_chain_dma *cdma) const struct comp_driver *drv; struct comp_dev *dev; - drv = ipc4_get_drv((const uint8_t *)&uuid); + drv = ipc4_get_drv(&uuid); if (!drv) return -EINVAL; @@ -912,8 +912,9 @@ int ipc4_process_on_core(uint32_t core, bool blocking) return IPC4_SUCCESS; } -const struct comp_driver *ipc4_get_drv(const uint8_t *uuid) +const struct comp_driver *ipc4_get_drv(const void *uuid) { + const struct sof_uuid *const sof_uuid = (const struct sof_uuid *)uuid; struct comp_driver_list *drivers = comp_drivers_get(); struct list_item *clist; const struct comp_driver *drv = NULL; @@ -936,11 +937,11 @@ const struct comp_driver *ipc4_get_drv(const uint8_t *uuid) } } - tr_warn(&comp_tr, "get_drv(): the provided UUID (%08x %08x %08x %08x) can't be found!", - *(uint32_t *)(&uuid[0]), - *(uint32_t *)(&uuid[4]), - *(uint32_t *)(&uuid[8]), - *(uint32_t *)(&uuid[12])); + tr_warn(&comp_tr, + "get_drv(): the provided UUID (%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x) can't be found!", + sof_uuid->a, sof_uuid->b, sof_uuid->c, sof_uuid->d[0], sof_uuid->d[1], + sof_uuid->d[2], sof_uuid->d[3], sof_uuid->d[4], sof_uuid->d[5], sof_uuid->d[6], + sof_uuid->d[7]); out: irq_local_enable(flags); @@ -998,13 +999,13 @@ const struct comp_driver *ipc4_get_comp_drv(uint32_t module_id) #endif } /* Check already registered components */ - drv = ipc4_get_drv(mod->uuid); + drv = ipc4_get_drv(&mod->uuid); #if CONFIG_LIBRARY_MANAGER if (!drv) { /* New module not registered yet. */ lib_manager_register_module(module_id); - drv = ipc4_get_drv(mod->uuid); + drv = ipc4_get_drv(&mod->uuid); } #endif diff --git a/src/library_manager/lib_manager.c b/src/library_manager/lib_manager.c index ae824d512dc5..c208fde81988 100644 --- a/src/library_manager/lib_manager.c +++ b/src/library_manager/lib_manager.c @@ -641,7 +641,7 @@ int lib_manager_register_module(const uint32_t component_id) } mod = (struct sof_man_module *)((const uint8_t *)desc + SOF_MAN_MODULE_OFFSET(entry_index)); - const struct sof_uuid *uid = (struct sof_uuid *)&mod->uuid[0]; + const struct sof_uuid *uid = (struct sof_uuid *)&mod->uuid; lib_manager_prepare_module_adapter(drv, uid); diff --git a/src/probe/probe.c b/src/probe/probe.c index 190633c34ec8..4ca71685d7db 100644 --- a/src/probe/probe.c +++ b/src/probe/probe.c @@ -1620,13 +1620,10 @@ SOF_MODULE_INIT(probe, sys_comp_module_probe_interface_init); #include #include -#define UUID_PROBE 0x08, 0x08, 0xAD, 0x7C, 0x10, 0xAB, 0x23, 0xCD, 0xEF, 0x45, \ - 0x12, 0xAB, 0x34, 0xCD, 0x56, 0xEF, - SOF_LLEXT_MOD_ENTRY(probe, &probe_interface); static const struct sof_man_module_manifest mod_manifest __section(".module") __used = - SOF_LLEXT_MODULE_MANIFEST("PROBE", probe_llext_entry, 1, UUID_PROBE, 40); + SOF_LLEXT_MODULE_MANIFEST("PROBE", probe_llext_entry, 1, SOF_REG_UUID(probe4), 40); SOF_LLEXT_BUILDINFO; diff --git a/src/samples/audio/smart_amp_test_ipc4.c b/src/samples/audio/smart_amp_test_ipc4.c index 41d8ff2db25a..3d1cd244cc6a 100644 --- a/src/samples/audio/smart_amp_test_ipc4.c +++ b/src/samples/audio/smart_amp_test_ipc4.c @@ -408,8 +408,8 @@ SOF_LLEXT_MOD_ENTRY(smart_amp_test, &smart_amp_test_interface); static const struct sof_man_module_manifest main_manifest __section(".module") __attribute__((used)) = { .module = { .name = "SMATEST", - .uuid = {0x1E, 0x96, 0x7A, 0x16, 0xE4, 0x8A, 0xEA, 0x11, - 0x89, 0xF1, 0x00, 0x0C, 0x29, 0xCE, 0x16, 0x35}, + .uuid = { 0x167A961E, 0x8AE4, 0x11EA, { 0x89, 0xF1, 0x00, 0x0C, 0x29, 0xCE, 0x16, + 0x35 }}, .entry_point = (uint32_t)smart_amp_test_llext_entry, .instance_max_count = 1, .type = { diff --git a/tools/rimage/src/adsp_config.c b/tools/rimage/src/adsp_config.c index 7dd30864ff54..5ce44a689826 100644 --- a/tools/rimage/src/adsp_config.c +++ b/tools/rimage/src/adsp_config.c @@ -1910,7 +1910,7 @@ static int parse_module(const toml_table_t *toml, struct parse_ctx *pctx, if (ret < 0) return err_key_parse("uuid", NULL); - parse_uuid(buf, mod_man->uuid); + parse_uuid(buf, &mod_man->uuid); mod_man->affinity_mask = parse_uint32_hex_key(mod_entry, &ctx_entry, "affinity_mask", 1, &ret); @@ -1952,7 +1952,7 @@ static int parse_module(const toml_table_t *toml, struct parse_ctx *pctx, header->version_major = 2; header->version_minor = 5; header->ext_module_config_length = sizeof(struct fw_ext_mod_config_header); - memcpy(header->guid, mod_man->uuid, sizeof(mod_man->uuid)); + memcpy(header->guid, &mod_man->uuid, sizeof(mod_man->uuid)); type = parse_uint32_hex_key(mod_entry, &ctx_entry, "module_type", 1, &ret); if (ret < 0) diff --git a/tools/rimage/src/include/rimage/sof/user/manifest.h b/tools/rimage/src/include/rimage/sof/user/manifest.h index 829b1b134810..c206fe7a5055 100644 --- a/tools/rimage/src/include/rimage/sof/user/manifest.h +++ b/tools/rimage/src/include/rimage/sof/user/manifest.h @@ -86,13 +86,20 @@ struct sof_man_segment_desc { #define SOF_MAN_MOD_SHA384_LEN 48 #define SOF_MAN_MOD_ID {'$', 'A', 'M', 'E'} +struct sof_man_uuid { + uint32_t a; + uint16_t b; + uint16_t c; + uint8_t d[8]; +}; + /* * Each module has an entry in the FW header. Used by ROM - Immutable. */ struct sof_man_module { uint8_t struct_id[SOF_MAN_MOD_ID_LEN]; /* SOF_MAN_MOD_ID */ uint8_t name[SOF_MAN_MOD_NAME_LEN]; - uint8_t uuid[16]; + struct sof_man_uuid uuid; struct sof_man_module_type type; uint8_t hash[SOF_MAN_MOD_SHA256_LEN]; uint32_t entry_point; diff --git a/tools/rimage/src/include/rimage/toml_utils.h b/tools/rimage/src/include/rimage/toml_utils.h index 22f257c2c65d..94c512f31aa0 100644 --- a/tools/rimage/src/include/rimage/toml_utils.h +++ b/tools/rimage/src/include/rimage/toml_utils.h @@ -115,7 +115,7 @@ void parse_str_key(const toml_table_t *table, struct parse_ctx *ctx, const char * Parse UUID hex string into a byte array. The endianness of the output * is architecture-dependent: do not use in any portable code. */ -void parse_uuid(const char *buf, uint8_t *uuid); +void parse_uuid(const char *buf, void *uuid); /** version is stored as toml array with integer number, something like: * "version = [1, 8]" diff --git a/tools/rimage/src/manifest.c b/tools/rimage/src/manifest.c index d7a1fbe58e4e..f0c92014ce00 100644 --- a/tools/rimage/src/manifest.c +++ b/tools/rimage/src/manifest.c @@ -205,7 +205,7 @@ static void man_get_section_manifest(struct image *image, memcpy(man_module->struct_id, "$AME", 4); man_module->entry_point = sof_mod->module.entry_point; memcpy(man_module->name, sof_mod->module.name, SOF_MAN_MOD_NAME_LEN); - memcpy(man_module->uuid, sof_mod->module.uuid, 16); + memcpy(&man_module->uuid, &sof_mod->module.uuid, sizeof(man_module->uuid)); man_module->affinity_mask = sof_mod->module.affinity_mask; man_module->instance_max_count = sof_mod->module.instance_max_count; man_module->type.auto_start = sof_mod->module.type.auto_start; diff --git a/tools/rimage/src/toml_utils.c b/tools/rimage/src/toml_utils.c index 7570c5b1f7bb..d7abc1e82296 100644 --- a/tools/rimage/src/toml_utils.c +++ b/tools/rimage/src/toml_utils.c @@ -290,7 +290,7 @@ void parse_str_key(const toml_table_t *table, struct parse_ctx *ctx, const char dst[capacity - 1] = 0; } -void parse_uuid(const char *buf, uint8_t *uuid) +void parse_uuid(const char *buf, void *uuid) { struct uuid_t id; uint32_t d[11];