From 43fdb5b0255f3f6d9666a23e778d05724d3a2b1d Mon Sep 17 00:00:00 2001 From: Seppo Ingalsuo Date: Fri, 20 Dec 2024 16:33:42 +0200 Subject: [PATCH 1/6] Tools: sof-ctl: Use same blob format as UCM2/cset-tlv This change aligns the blob formats of UCM2 and sof-ctl. The binary blobs for UCM2 have an additional 8 byte header that earlier was generated internally in sof-ctl. sof-ctl now expects the header to be in .txt and .bin format the data file. The sof-ctl can use the same .bin files as UCM. The Octave scripts to export blobs for topology, sof-ctl, and UCM2 are updated to match the change. The topology embedded blobs remain as before without the header. The TLV header add code is removed from sof_ucm_blob_write.m since the retrieved header from sof-ctl contains it. In topology blob export functions the header is dropped. Signed-off-by: Seppo Ingalsuo --- tools/ctl/ctl.c | 61 ++++++++++++++--------- tools/tune/common/sof_alsactl_write.m | 3 ++ tools/tune/common/sof_blob_write.m | 2 + tools/tune/common/sof_check_blob_header.m | 37 ++++++++++++++ tools/tune/common/sof_tplg2_write.m | 6 +++ tools/tune/common/sof_tplg_write.m | 6 +++ tools/tune/common/sof_ucm_blob_write.m | 25 ++-------- 7 files changed, 96 insertions(+), 44 deletions(-) create mode 100644 tools/tune/common/sof_check_blob_header.m diff --git a/tools/ctl/ctl.c b/tools/ctl/ctl.c index 1d89c2c15fd9..170684910d4f 100644 --- a/tools/ctl/ctl.c +++ b/tools/ctl/ctl.c @@ -20,6 +20,8 @@ #define BUFFER_SIZE_OFFSET 1 #define BUFFER_ABI_OFFSET 2 +#define BUFFER_TLV_HEADER_BYTES ((BUFFER_ABI_OFFSET) * sizeof(uint32_t)) + /* Definitions for multiple IPCs */ enum sof_ipc_type { SOF_IPC_TYPE_3, @@ -103,6 +105,7 @@ static void header_init(struct ctl_data *ctl_data) hdr->magic = ctl_data->magic; hdr->type = ctl_data->type; hdr->abi = SOF_ABI_VERSION; + ctl_data->buffer[BUFFER_TAG_OFFSET] = SOF_CTRL_CMD_BINARY; } /* Returns the number of bytes written to the control buffer */ @@ -117,7 +120,7 @@ static int read_setup(struct ctl_data *ctl_data) int separator; int n = 0; FILE *fh; - int data_start_int_index = BUFFER_ABI_OFFSET; + int data_start_int_index = 0; int data_int_index; /* open input file */ @@ -131,7 +134,7 @@ static int read_setup(struct ctl_data *ctl_data) if (ctl_data->no_abi) { header_init(ctl_data); abi_size = sizeof(struct sof_abi_hdr); - data_start_int_index += abi_size / sizeof(uint32_t); + data_start_int_index += (abi_size + BUFFER_TLV_HEADER_BYTES) / sizeof(uint32_t); } if (ctl_data->binary) { @@ -163,6 +166,8 @@ static int read_setup(struct ctl_data *ctl_data) if (ctl_data->no_abi) { hdr->size = n; n += abi_size; + ctl_data->buffer[BUFFER_SIZE_OFFSET] = n; + n += BUFFER_TLV_HEADER_BYTES; } if (n > n_max) { @@ -206,16 +211,16 @@ static void hex_data_dump(struct ctl_data *ctl_data) int i; /* calculate the dumping units */ - n = ctl_data->buffer[BUFFER_SIZE_OFFSET] / sizeof(uint16_t); + n = (ctl_data->buffer[BUFFER_SIZE_OFFSET] + BUFFER_TLV_HEADER_BYTES) / sizeof(uint16_t); /* exclude the type and size header */ - int_offset = 2; + int_offset = 0; /* exclude abi header if '-r' specified */ if (ctl_data->no_abi) { - int_offset += sizeof(struct sof_abi_hdr) / + int_offset += (sizeof(struct sof_abi_hdr) + BUFFER_TLV_HEADER_BYTES) / sizeof(uint32_t); - n -= sizeof(struct sof_abi_hdr) / + n -= (sizeof(struct sof_abi_hdr) + BUFFER_TLV_HEADER_BYTES) / sizeof(uint16_t); } @@ -242,11 +247,11 @@ static void csv_data_dump(struct ctl_data *ctl_data, FILE *fh) int i; int s = 0; - config = &ctl_data->buffer[BUFFER_ABI_OFFSET]; - n = ctl_data->buffer[BUFFER_SIZE_OFFSET] / sizeof(uint32_t); + config = &ctl_data->buffer[0]; + n = (ctl_data->buffer[BUFFER_SIZE_OFFSET] + BUFFER_TLV_HEADER_BYTES) / sizeof(uint32_t); if (ctl_data->no_abi) - s = sizeof(struct sof_abi_hdr) / sizeof(uint32_t); + s = (sizeof(struct sof_abi_hdr) + BUFFER_TLV_HEADER_BYTES) / sizeof(uint32_t); /* Print out in CSV txt formal */ for (i = s; i < n; i++) { @@ -298,10 +303,7 @@ static int buffer_alloc(struct ctl_data *ctl_data) return -EINVAL; } - ctl_data->buffer[BUFFER_TAG_OFFSET] = SOF_CTRL_CMD_BINARY; - ctl_data->buffer_size = buffer_size; - return 0; } @@ -429,7 +431,7 @@ static int ctl_free(struct ctl_data *ctl_data) return ret; } -static void ctl_dump(struct ctl_data *ctl_data) +static void ctl_dump(struct ctl_data *ctl_data, size_t dump_size) { FILE *fh; int offset = 0; @@ -445,13 +447,16 @@ static void ctl_dump(struct ctl_data *ctl_data) return; } - offset = BUFFER_ABI_OFFSET; - n = ctl_data->buffer[BUFFER_SIZE_OFFSET]; + if (dump_size) + n = dump_size; + else + n = ctl_data->buffer[BUFFER_SIZE_OFFSET] + BUFFER_TLV_HEADER_BYTES; if (ctl_data->no_abi) { - offset += sizeof(struct sof_abi_hdr) / - sizeof(int); + offset = sizeof(struct sof_abi_hdr) / sizeof(int) + + BUFFER_ABI_OFFSET; n -= sizeof(struct sof_abi_hdr); + n -= BUFFER_ABI_OFFSET * sizeof(uint32_t); } n = fwrite(&ctl_data->buffer[offset], 1, n, fh); @@ -476,7 +481,7 @@ static void ctl_dump(struct ctl_data *ctl_data) static int ctl_set_get(struct ctl_data *ctl_data) { int ret; - size_t n; + size_t read_size, ref_size; if (!ctl_data->buffer) { fprintf(stderr, "Error: No buffer for set/get!\n"); @@ -488,14 +493,22 @@ static int ctl_set_get(struct ctl_data *ctl_data) ctl_data->input_file); fprintf(stdout, "into device %s control %s.\n", ctl_data->dev, ctl_data->cname); - n = read_setup(ctl_data); - if (n < 1) { + read_size = read_setup(ctl_data); + if (read_size < 1) { fprintf(stderr, "Error: failed data read from %s.\n", ctl_data->input_file); return -EINVAL; } - ctl_data->buffer[BUFFER_SIZE_OFFSET] = n; + ref_size = ctl_data->buffer[BUFFER_SIZE_OFFSET] + BUFFER_TLV_HEADER_BYTES; + if (read_size != ref_size) { + fprintf(stderr, + "Error: Blob TLV header size %u (plus %lu) does not match with read bytes count %zu.\n", + ctl_data->buffer[BUFFER_SIZE_OFFSET], BUFFER_TLV_HEADER_BYTES, + read_size); + return -EINVAL; + } + ret = snd_ctl_elem_tlv_write(ctl_data->ctl, ctl_data->id, ctl_data->buffer); if (ret < 0) { @@ -629,8 +642,8 @@ int main(int argc, char *argv[]) hdr = (struct sof_abi_hdr *) &ctl_data->buffer[BUFFER_ABI_OFFSET]; hdr->size = ctl_data->print_abi_size; - ctl_data->buffer[BUFFER_SIZE_OFFSET] = ctl_data->ctrl_size; - ctl_dump(ctl_data); + ctl_data->buffer[BUFFER_SIZE_OFFSET] = ctl_data->ctrl_size + hdr->size; + ctl_dump(ctl_data, sizeof(struct sof_abi_hdr) + BUFFER_TLV_HEADER_BYTES); buffer_free(ctl_data); goto out_fd_close; } @@ -668,7 +681,7 @@ int main(int argc, char *argv[]) } /* dump the tlv buffer to a file or stdout */ - ctl_dump(ctl_data); + ctl_dump(ctl_data, 0); data_free: ret = ctl_free(ctl_data); diff --git a/tools/tune/common/sof_alsactl_write.m b/tools/tune/common/sof_alsactl_write.m index 17a3db23f421..b8676f7a0987 100644 --- a/tools/tune/common/sof_alsactl_write.m +++ b/tools/tune/common/sof_alsactl_write.m @@ -1,5 +1,8 @@ function sof_alsactl_write(fn, blob8) +%% Check that blob header is sane +sof_check_blob_header(blob8); + %% Write blob sof_check_create_dir(fn); fh = fopen(fn, 'w'); diff --git a/tools/tune/common/sof_blob_write.m b/tools/tune/common/sof_blob_write.m index 6a71618fb960..df37669618e1 100644 --- a/tools/tune/common/sof_blob_write.m +++ b/tools/tune/common/sof_blob_write.m @@ -1,5 +1,7 @@ function sof_blob_write(fn, blob8) +%% Check that blob header is sane +sof_check_blob_header(blob8); %% Write blob check_create_dir(fn); diff --git a/tools/tune/common/sof_check_blob_header.m b/tools/tune/common/sof_check_blob_header.m new file mode 100644 index 000000000000..46a3aed45497 --- /dev/null +++ b/tools/tune/common/sof_check_blob_header.m @@ -0,0 +1,37 @@ +% sof_check_blob_header(blob) +% +% Check for correct header in bytes data. The function +% errors if header is not correct. +% +% Input +% blob - int8 type numbers data +% +% Output +% + +function sof_check_blob_header(blob8) + +% Correct size in header? +blob_bytes = length(blob8); +header_bytes = b2w(blob8(5:8)); +if blob_bytes ~= header_bytes + 8 + fprintf(1, "Error: blob header size %d does not math blob size %d\n", header_bytes, blob_bytes); + fprintf(1, "Is installed sof-ctl up-to-date?\n"); + error("Failed."); +end + +% Correct command? +SOF_CTRL_CMD_BINARY = 3; +value = b2w(blob8(1:4)); +if value ~= SOF_CTRL_CMD_BINARY + fprintf(1, "Error: blob control command is not set to SOF_CTRL_CMD_BINARY.\n"); + fprintf(1, "Is installed sof-ctl up-to-date?\n"); + error("Failed."); +end + +end + +function word =b2w(bytes) + tmp = int32(bytes); + word = tmp(1) + bitshift(tmp(2), 8) + bitshift(tmp(3), 16) + bitshift(tmp(4), 24); +end diff --git a/tools/tune/common/sof_tplg2_write.m b/tools/tune/common/sof_tplg2_write.m index 6322fa136cdd..b0b03b86db11 100644 --- a/tools/tune/common/sof_tplg2_write.m +++ b/tools/tune/common/sof_tplg2_write.m @@ -13,6 +13,12 @@ function sof_tplg2_write(fn, blob8, component, comment, howto) howto = []; end +%% Check that blob header is sane +sof_check_blob_header(blob8); + +%% Drop the 8 bytes TLV header from topology embedded blop +blob8 = blob8(9:end); + %% Check that blob length is multiple of 32 bits n_blob = length(blob8); n_test = ceil(n_blob/4)*4; diff --git a/tools/tune/common/sof_tplg_write.m b/tools/tune/common/sof_tplg_write.m index 358782bd30a7..4a766583b726 100644 --- a/tools/tune/common/sof_tplg_write.m +++ b/tools/tune/common/sof_tplg_write.m @@ -7,6 +7,12 @@ function sof_tplg_write(fn, blob8, name, comment, howto) howto = []; end +%% Check that blob header is sane +sof_check_blob_header(blob8); + +%% Drop the 8 bytes TLV header from topology embedded blop +blob8 = blob8(9:end); + %% Pad blob length to multiple of four bytes n_orig = length(blob8); n_new = ceil(n_orig/4)*4; diff --git a/tools/tune/common/sof_ucm_blob_write.m b/tools/tune/common/sof_ucm_blob_write.m index 2633c6571013..22eca5ce5ac5 100644 --- a/tools/tune/common/sof_ucm_blob_write.m +++ b/tools/tune/common/sof_ucm_blob_write.m @@ -13,14 +13,8 @@ function sof_ucm_blob_write(fn, blob8) % % Copyright (c) 2024, Intel Corporation. All rights reserved. -% Export for UCM cset-tlv with additional 8 bytes header -SOF_CTRL_CMD_BINARY = 3; -nh = 8; -nb = length(blob8); -ublob8 = zeros(nb + nh, 1, 'uint8'); -ublob8(1:4) = w32b(SOF_CTRL_CMD_BINARY); -ublob8(5:8) = w32b(nb); -ublob8(9:end) = blob8; +%% Check that blob header is sane +sof_check_blob_header(blob8); %% Write blob sof_check_create_dir(fn); @@ -30,28 +24,19 @@ function sof_ucm_blob_write(fn, blob8) error("Failed."); end -fwrite(fh, ublob8, 'uint8'); +fwrite(fh, blob8, 'uint8'); fclose(fh); %% Print as 8 bit hex -nb = length(ublob8); +nb = length(blob8); nl = ceil(nb/16); for i = 1:nl m = min(16, nb-(i-1)*16); for j = 1:m - fprintf(1, "%02x ", ublob8((i-1)*16 + j)); + fprintf(1, "%02x ", blob8((i-1)*16 + j)); end fprintf(1, "\n"); end fprintf(1, "\n"); end - -function bytes = w32b(word) -sh = [0 -8 -16 -24]; -bytes = uint8(zeros(1,4)); -bytes(1) = bitand(bitshift(word, sh(1)), 255); -bytes(2) = bitand(bitshift(word, sh(2)), 255); -bytes(3) = bitand(bitshift(word, sh(3)), 255); -bytes(4) = bitand(bitshift(word, sh(4)), 255); -end From 367d208f1f2f9321be4f4ea552d2885823f6c181 Mon Sep 17 00:00:00 2001 From: Seppo Ingalsuo Date: Mon, 30 Dec 2024 18:54:32 +0200 Subject: [PATCH 2/6] Tools: sof-ctl: Error if command line contains extra arguments It is a common mistake (including myself) to attempt to set bytes control without option "-s" but with provided blob file name. In such case the previous version silently ignores the blob file name and dumps existing bytes control values. This change adds check of optind value from getopt(). If there were non-parsed arguments, the sof-ctl returns with error. Signed-off-by: Seppo Ingalsuo --- tools/ctl/ctl.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tools/ctl/ctl.c b/tools/ctl/ctl.c index 170684910d4f..c669349b68f9 100644 --- a/tools/ctl/ctl.c +++ b/tools/ctl/ctl.c @@ -602,6 +602,13 @@ int main(int argc, char *argv[]) } } + /* All arguments are switches, error if something still remains in command line */ + if (optind < argc) { + fprintf(stderr, "Error: Non-supported argument %s.\n", + argv[optind]); + return -EINVAL; + } + switch (ipc_type) { case 3: ctl_data->ipc_type = SOF_IPC_TYPE_3; From 8b190e78cd8f67a6be8db5c1730e692dd49602d0 Mon Sep 17 00:00:00 2001 From: Seppo Ingalsuo Date: Mon, 30 Dec 2024 17:15:47 +0200 Subject: [PATCH 3/6] Tools: sof-ctl: Move IIR and FIR blobs to subdirectories This patch organizes the blobs by move of IIR and FIR blobs to own sub-directories. This makes the directory structure similar as in blobs in UCM2. Signed-off-by: Seppo Ingalsuo --- tools/ctl/ipc3/{eq_fir_flat.txt => eq_fir/flat.txt} | 0 tools/ctl/ipc3/{eq_fir_loudness.txt => eq_fir/loudness.txt} | 0 tools/ctl/ipc3/{eq_fir_mid.txt => eq_fir/mid.txt} | 0 tools/ctl/ipc3/{eq_fir_pass.txt => eq_fir/pass.txt} | 0 tools/ctl/ipc3/{eq_iir_bandpass.txt => eq_iir/bandpass.txt} | 0 tools/ctl/ipc3/{eq_iir_bassboost.txt => eq_iir/bassboost.txt} | 0 tools/ctl/ipc3/{eq_iir_bundle.txt => eq_iir/bundle.txt} | 0 tools/ctl/ipc3/{eq_iir_flat.txt => eq_iir/flat.txt} | 0 .../highpass_20hz_0db_48khz.txt} | 0 .../highpass_30hz_0db_48khz.txt} | 0 .../highpass_40hz_0db_48khz.txt} | 0 .../highpass_50hz_0db_48khz.txt} | 0 tools/ctl/ipc3/{eq_iir_loudness.txt => eq_iir/loudness.txt} | 0 tools/ctl/ipc3/{eq_iir_pass.txt => eq_iir/pass.txt} | 0 tools/ctl/ipc4/{eq_fir_flat.txt => eq_fir/flat.txt} | 0 tools/ctl/ipc4/{eq_fir_loudness.txt => eq_fir/loudness.txt} | 0 tools/ctl/ipc4/{eq_fir_mid.txt => eq_fir/mid.txt} | 0 tools/ctl/ipc4/{eq_fir_pass.txt => eq_fir/pass.txt} | 0 tools/ctl/ipc4/{eq_iir_bandpass.txt => eq_iir/bandpass.txt} | 0 tools/ctl/ipc4/{eq_iir_bassboost.txt => eq_iir/bassboost.txt} | 0 tools/ctl/ipc4/{eq_iir_flat.txt => eq_iir/flat.txt} | 0 .../highpass_20hz_0db_48khz.txt} | 0 .../highpass_30hz_0db_48khz.txt} | 0 .../highpass_40hz_0db_48khz.txt} | 0 .../highpass_50hz_0db_48khz.txt} | 0 tools/ctl/ipc4/{eq_iir_loudness.txt => eq_iir/loudness.txt} | 0 tools/ctl/ipc4/{eq_iir_pass.txt => eq_iir/pass.txt} | 0 27 files changed, 0 insertions(+), 0 deletions(-) rename tools/ctl/ipc3/{eq_fir_flat.txt => eq_fir/flat.txt} (100%) rename tools/ctl/ipc3/{eq_fir_loudness.txt => eq_fir/loudness.txt} (100%) rename tools/ctl/ipc3/{eq_fir_mid.txt => eq_fir/mid.txt} (100%) rename tools/ctl/ipc3/{eq_fir_pass.txt => eq_fir/pass.txt} (100%) rename tools/ctl/ipc3/{eq_iir_bandpass.txt => eq_iir/bandpass.txt} (100%) rename tools/ctl/ipc3/{eq_iir_bassboost.txt => eq_iir/bassboost.txt} (100%) rename tools/ctl/ipc3/{eq_iir_bundle.txt => eq_iir/bundle.txt} (100%) rename tools/ctl/ipc3/{eq_iir_flat.txt => eq_iir/flat.txt} (100%) rename tools/ctl/ipc3/{eq_iir_highpass_20hz_0db_48khz.txt => eq_iir/highpass_20hz_0db_48khz.txt} (100%) rename tools/ctl/ipc3/{eq_iir_highpass_30hz_0db_48khz.txt => eq_iir/highpass_30hz_0db_48khz.txt} (100%) rename tools/ctl/ipc3/{eq_iir_highpass_40hz_0db_48khz.txt => eq_iir/highpass_40hz_0db_48khz.txt} (100%) rename tools/ctl/ipc3/{eq_iir_highpass_50hz_0db_48khz.txt => eq_iir/highpass_50hz_0db_48khz.txt} (100%) rename tools/ctl/ipc3/{eq_iir_loudness.txt => eq_iir/loudness.txt} (100%) rename tools/ctl/ipc3/{eq_iir_pass.txt => eq_iir/pass.txt} (100%) rename tools/ctl/ipc4/{eq_fir_flat.txt => eq_fir/flat.txt} (100%) rename tools/ctl/ipc4/{eq_fir_loudness.txt => eq_fir/loudness.txt} (100%) rename tools/ctl/ipc4/{eq_fir_mid.txt => eq_fir/mid.txt} (100%) rename tools/ctl/ipc4/{eq_fir_pass.txt => eq_fir/pass.txt} (100%) rename tools/ctl/ipc4/{eq_iir_bandpass.txt => eq_iir/bandpass.txt} (100%) rename tools/ctl/ipc4/{eq_iir_bassboost.txt => eq_iir/bassboost.txt} (100%) rename tools/ctl/ipc4/{eq_iir_flat.txt => eq_iir/flat.txt} (100%) rename tools/ctl/ipc4/{eq_iir_highpass_20hz_0db_48khz.txt => eq_iir/highpass_20hz_0db_48khz.txt} (100%) rename tools/ctl/ipc4/{eq_iir_highpass_30hz_0db_48khz.txt => eq_iir/highpass_30hz_0db_48khz.txt} (100%) rename tools/ctl/ipc4/{eq_iir_highpass_40hz_0db_48khz.txt => eq_iir/highpass_40hz_0db_48khz.txt} (100%) rename tools/ctl/ipc4/{eq_iir_highpass_50hz_0db_48khz.txt => eq_iir/highpass_50hz_0db_48khz.txt} (100%) rename tools/ctl/ipc4/{eq_iir_loudness.txt => eq_iir/loudness.txt} (100%) rename tools/ctl/ipc4/{eq_iir_pass.txt => eq_iir/pass.txt} (100%) diff --git a/tools/ctl/ipc3/eq_fir_flat.txt b/tools/ctl/ipc3/eq_fir/flat.txt similarity index 100% rename from tools/ctl/ipc3/eq_fir_flat.txt rename to tools/ctl/ipc3/eq_fir/flat.txt diff --git a/tools/ctl/ipc3/eq_fir_loudness.txt b/tools/ctl/ipc3/eq_fir/loudness.txt similarity index 100% rename from tools/ctl/ipc3/eq_fir_loudness.txt rename to tools/ctl/ipc3/eq_fir/loudness.txt diff --git a/tools/ctl/ipc3/eq_fir_mid.txt b/tools/ctl/ipc3/eq_fir/mid.txt similarity index 100% rename from tools/ctl/ipc3/eq_fir_mid.txt rename to tools/ctl/ipc3/eq_fir/mid.txt diff --git a/tools/ctl/ipc3/eq_fir_pass.txt b/tools/ctl/ipc3/eq_fir/pass.txt similarity index 100% rename from tools/ctl/ipc3/eq_fir_pass.txt rename to tools/ctl/ipc3/eq_fir/pass.txt diff --git a/tools/ctl/ipc3/eq_iir_bandpass.txt b/tools/ctl/ipc3/eq_iir/bandpass.txt similarity index 100% rename from tools/ctl/ipc3/eq_iir_bandpass.txt rename to tools/ctl/ipc3/eq_iir/bandpass.txt diff --git a/tools/ctl/ipc3/eq_iir_bassboost.txt b/tools/ctl/ipc3/eq_iir/bassboost.txt similarity index 100% rename from tools/ctl/ipc3/eq_iir_bassboost.txt rename to tools/ctl/ipc3/eq_iir/bassboost.txt diff --git a/tools/ctl/ipc3/eq_iir_bundle.txt b/tools/ctl/ipc3/eq_iir/bundle.txt similarity index 100% rename from tools/ctl/ipc3/eq_iir_bundle.txt rename to tools/ctl/ipc3/eq_iir/bundle.txt diff --git a/tools/ctl/ipc3/eq_iir_flat.txt b/tools/ctl/ipc3/eq_iir/flat.txt similarity index 100% rename from tools/ctl/ipc3/eq_iir_flat.txt rename to tools/ctl/ipc3/eq_iir/flat.txt diff --git a/tools/ctl/ipc3/eq_iir_highpass_20hz_0db_48khz.txt b/tools/ctl/ipc3/eq_iir/highpass_20hz_0db_48khz.txt similarity index 100% rename from tools/ctl/ipc3/eq_iir_highpass_20hz_0db_48khz.txt rename to tools/ctl/ipc3/eq_iir/highpass_20hz_0db_48khz.txt diff --git a/tools/ctl/ipc3/eq_iir_highpass_30hz_0db_48khz.txt b/tools/ctl/ipc3/eq_iir/highpass_30hz_0db_48khz.txt similarity index 100% rename from tools/ctl/ipc3/eq_iir_highpass_30hz_0db_48khz.txt rename to tools/ctl/ipc3/eq_iir/highpass_30hz_0db_48khz.txt diff --git a/tools/ctl/ipc3/eq_iir_highpass_40hz_0db_48khz.txt b/tools/ctl/ipc3/eq_iir/highpass_40hz_0db_48khz.txt similarity index 100% rename from tools/ctl/ipc3/eq_iir_highpass_40hz_0db_48khz.txt rename to tools/ctl/ipc3/eq_iir/highpass_40hz_0db_48khz.txt diff --git a/tools/ctl/ipc3/eq_iir_highpass_50hz_0db_48khz.txt b/tools/ctl/ipc3/eq_iir/highpass_50hz_0db_48khz.txt similarity index 100% rename from tools/ctl/ipc3/eq_iir_highpass_50hz_0db_48khz.txt rename to tools/ctl/ipc3/eq_iir/highpass_50hz_0db_48khz.txt diff --git a/tools/ctl/ipc3/eq_iir_loudness.txt b/tools/ctl/ipc3/eq_iir/loudness.txt similarity index 100% rename from tools/ctl/ipc3/eq_iir_loudness.txt rename to tools/ctl/ipc3/eq_iir/loudness.txt diff --git a/tools/ctl/ipc3/eq_iir_pass.txt b/tools/ctl/ipc3/eq_iir/pass.txt similarity index 100% rename from tools/ctl/ipc3/eq_iir_pass.txt rename to tools/ctl/ipc3/eq_iir/pass.txt diff --git a/tools/ctl/ipc4/eq_fir_flat.txt b/tools/ctl/ipc4/eq_fir/flat.txt similarity index 100% rename from tools/ctl/ipc4/eq_fir_flat.txt rename to tools/ctl/ipc4/eq_fir/flat.txt diff --git a/tools/ctl/ipc4/eq_fir_loudness.txt b/tools/ctl/ipc4/eq_fir/loudness.txt similarity index 100% rename from tools/ctl/ipc4/eq_fir_loudness.txt rename to tools/ctl/ipc4/eq_fir/loudness.txt diff --git a/tools/ctl/ipc4/eq_fir_mid.txt b/tools/ctl/ipc4/eq_fir/mid.txt similarity index 100% rename from tools/ctl/ipc4/eq_fir_mid.txt rename to tools/ctl/ipc4/eq_fir/mid.txt diff --git a/tools/ctl/ipc4/eq_fir_pass.txt b/tools/ctl/ipc4/eq_fir/pass.txt similarity index 100% rename from tools/ctl/ipc4/eq_fir_pass.txt rename to tools/ctl/ipc4/eq_fir/pass.txt diff --git a/tools/ctl/ipc4/eq_iir_bandpass.txt b/tools/ctl/ipc4/eq_iir/bandpass.txt similarity index 100% rename from tools/ctl/ipc4/eq_iir_bandpass.txt rename to tools/ctl/ipc4/eq_iir/bandpass.txt diff --git a/tools/ctl/ipc4/eq_iir_bassboost.txt b/tools/ctl/ipc4/eq_iir/bassboost.txt similarity index 100% rename from tools/ctl/ipc4/eq_iir_bassboost.txt rename to tools/ctl/ipc4/eq_iir/bassboost.txt diff --git a/tools/ctl/ipc4/eq_iir_flat.txt b/tools/ctl/ipc4/eq_iir/flat.txt similarity index 100% rename from tools/ctl/ipc4/eq_iir_flat.txt rename to tools/ctl/ipc4/eq_iir/flat.txt diff --git a/tools/ctl/ipc4/eq_iir_highpass_20hz_0db_48khz.txt b/tools/ctl/ipc4/eq_iir/highpass_20hz_0db_48khz.txt similarity index 100% rename from tools/ctl/ipc4/eq_iir_highpass_20hz_0db_48khz.txt rename to tools/ctl/ipc4/eq_iir/highpass_20hz_0db_48khz.txt diff --git a/tools/ctl/ipc4/eq_iir_highpass_30hz_0db_48khz.txt b/tools/ctl/ipc4/eq_iir/highpass_30hz_0db_48khz.txt similarity index 100% rename from tools/ctl/ipc4/eq_iir_highpass_30hz_0db_48khz.txt rename to tools/ctl/ipc4/eq_iir/highpass_30hz_0db_48khz.txt diff --git a/tools/ctl/ipc4/eq_iir_highpass_40hz_0db_48khz.txt b/tools/ctl/ipc4/eq_iir/highpass_40hz_0db_48khz.txt similarity index 100% rename from tools/ctl/ipc4/eq_iir_highpass_40hz_0db_48khz.txt rename to tools/ctl/ipc4/eq_iir/highpass_40hz_0db_48khz.txt diff --git a/tools/ctl/ipc4/eq_iir_highpass_50hz_0db_48khz.txt b/tools/ctl/ipc4/eq_iir/highpass_50hz_0db_48khz.txt similarity index 100% rename from tools/ctl/ipc4/eq_iir_highpass_50hz_0db_48khz.txt rename to tools/ctl/ipc4/eq_iir/highpass_50hz_0db_48khz.txt diff --git a/tools/ctl/ipc4/eq_iir_loudness.txt b/tools/ctl/ipc4/eq_iir/loudness.txt similarity index 100% rename from tools/ctl/ipc4/eq_iir_loudness.txt rename to tools/ctl/ipc4/eq_iir/loudness.txt diff --git a/tools/ctl/ipc4/eq_iir_pass.txt b/tools/ctl/ipc4/eq_iir/pass.txt similarity index 100% rename from tools/ctl/ipc4/eq_iir_pass.txt rename to tools/ctl/ipc4/eq_iir/pass.txt From 434b667ae77694beac308ce67001409a2a722a52 Mon Sep 17 00:00:00 2001 From: Seppo Ingalsuo Date: Mon, 30 Dec 2024 17:34:04 +0200 Subject: [PATCH 4/6] Tools: sof-ctl: Update text format blobs with added TLV header This patch adds the similar TLV header to text format blobs for sof-ctl as present in current .bin format blobs for UCM2. The header data consists of uint32_t value 3 for SOF_CTRL_CMD_BINARY and uint32_t value for size of the blob. The other change is increase of SOF ABI version number in the 6th value in the new blob. Signed-off-by: Seppo Ingalsuo --- tools/ctl/ipc3/eq_fir/flat.txt | 2 +- tools/ctl/ipc3/eq_fir/loudness.txt | 2 +- tools/ctl/ipc3/eq_fir/mid.txt | 2 +- tools/ctl/ipc3/eq_fir/pass.txt | 2 +- tools/ctl/ipc3/eq_iir/bandpass.txt | 2 +- tools/ctl/ipc3/eq_iir/bassboost.txt | 2 +- tools/ctl/ipc3/eq_iir/bundle.txt | 2 +- tools/ctl/ipc3/eq_iir/flat.txt | 2 +- tools/ctl/ipc3/eq_iir/highpass_20hz_0db_48khz.txt | 2 +- tools/ctl/ipc3/eq_iir/highpass_30hz_0db_48khz.txt | 2 +- tools/ctl/ipc3/eq_iir/highpass_40hz_0db_48khz.txt | 2 +- tools/ctl/ipc3/eq_iir/highpass_50hz_0db_48khz.txt | 2 +- tools/ctl/ipc3/eq_iir/loudness.txt | 2 +- tools/ctl/ipc3/eq_iir/pass.txt | 2 +- tools/ctl/ipc4/drc/passthrough.txt | 2 +- tools/ctl/ipc4/eq_fir/flat.txt | 2 +- tools/ctl/ipc4/eq_fir/loudness.txt | 2 +- tools/ctl/ipc4/eq_fir/mid.txt | 2 +- tools/ctl/ipc4/eq_fir/pass.txt | 2 +- tools/ctl/ipc4/eq_iir/bandpass.txt | 2 +- tools/ctl/ipc4/eq_iir/bassboost.txt | 2 +- tools/ctl/ipc4/eq_iir/flat.txt | 2 +- tools/ctl/ipc4/eq_iir/highpass_20hz_0db_48khz.txt | 2 +- tools/ctl/ipc4/eq_iir/highpass_30hz_0db_48khz.txt | 2 +- tools/ctl/ipc4/eq_iir/highpass_40hz_0db_48khz.txt | 2 +- tools/ctl/ipc4/eq_iir/highpass_50hz_0db_48khz.txt | 2 +- tools/ctl/ipc4/eq_iir/loudness.txt | 2 +- tools/ctl/ipc4/eq_iir/pass.txt | 2 +- 28 files changed, 28 insertions(+), 28 deletions(-) diff --git a/tools/ctl/ipc3/eq_fir/flat.txt b/tools/ctl/ipc3/eq_fir/flat.txt index 4be59009db77..ed8f327e17ee 100644 --- a/tools/ctl/ipc3/eq_fir/flat.txt +++ b/tools/ctl/ipc3/eq_fir/flat.txt @@ -1 +1 @@ -4607827,0,56,50331648,0,0,0,0,56,65538,0,0,0,0,0,4294901764,0,0,0,0,16384,0, +3,88,4607827,0,56,50450433,0,0,0,0,56,65538,0,0,0,0,0,4294901764,0,0,0,0,16384,0 diff --git a/tools/ctl/ipc3/eq_fir/loudness.txt b/tools/ctl/ipc3/eq_fir/loudness.txt index e9dd0d864a87..40cc0f19924e 100644 --- a/tools/ctl/ipc3/eq_fir/loudness.txt +++ b/tools/ctl/ipc3/eq_fir/loudness.txt @@ -1 +1 @@ -4607827,0,584,50413568,0,0,0,0,584,131076,0,0,0,0,65537,65537,4294901764,0,0,0,0,16384,0,252,0,0,0,0,65537,65537,65537,65537,131073,131074,131074,196611,196611,262147,262148,327685,393221,393222,458759,524296,589833,655370,720907,786444,851981,983054,1048591,1179665,1245202,1376276,1507350,1638424,1769498,1966109,2162719,2359330,2621478,2818089,3080237,3407922,3670070,3997755,4325440,4718661,5046347,5505105,5963863,6422622,6815845,7274604,7733362,8192121,8781953,9568396,10420376,11272357,12058802,12976318,14155982,15335649,16056559,16515324,16711960,24117551,70844611,3920495315,3920522431,70845139,24117443,16711983,16515352,16056572,15335663,14156001,12976334,12058814,11272370,10420389,9568408,8781964,8192129,7733369,7274610,6815852,6422629,5963870,5505111,5046353,4718667,4325445,3997760,3670075,3407926,3080242,2818093,2621481,2359334,2162722,1966111,1769501,1638426,1507352,1376278,1245204,1179666,1048593,983055,851982,786445,720908,655371,589834,524297,458760,393223,393222,327685,262149,262148,196611,196611,131075,131074,131074,65537,65537,65537,65537,1,0, +3,616,4607827,0,584,50450433,0,0,0,0,584,131076,0,0,0,0,65537,65537,4294901764,0,0,0,0,16384,0,252,0,0,0,0,65537,65537,65537,65537,131073,131074,131074,196611,196611,262147,262148,327685,393221,393222,458759,524296,589833,655370,720907,786444,851981,983054,1048591,1179665,1245202,1376276,1507350,1638424,1769498,1966109,2162719,2359330,2621478,2818089,3080237,3407922,3670070,3997755,4325440,4718661,5046347,5505105,5963863,6422622,6815845,7274604,7733362,8192121,8781953,9568396,10420376,11272357,12058802,12976318,14155982,15335649,16056559,16515324,16711960,24117551,70844611,3920495315,3920522431,70845139,24117443,16711983,16515352,16056572,15335663,14156001,12976334,12058814,11272370,10420389,9568408,8781964,8192129,7733369,7274610,6815852,6422629,5963870,5505111,5046353,4718667,4325445,3997760,3670075,3407926,3080242,2818093,2621481,2359334,2162722,1966111,1769501,1638426,1507352,1376278,1245204,1179666,1048593,983055,851982,786445,720908,655371,589834,524297,458760,393223,393222,327685,262149,262148,196611,196611,131075,131074,131074,65537,65537,65537,65537,1,0 diff --git a/tools/ctl/ipc3/eq_fir/mid.txt b/tools/ctl/ipc3/eq_fir/mid.txt index aac92e71de89..3d1f8b502d51 100644 --- a/tools/ctl/ipc3/eq_fir/mid.txt +++ b/tools/ctl/ipc3/eq_fir/mid.txt @@ -1 +1 @@ -4607827,0,128,50380800,0,0,0,0,128,65538,0,0,0,0,0,65576,0,0,0,0,1202154746,4222755303,3873958283,4024953600,4126012299,4176934804,4217764409,4250664050,4273864222,4288806716,2490349,6750285,8126582,7733371,6488174,4980824,3473472,2293804,1245211,1245197, +3,160,4607827,0,128,50450433,0,0,0,0,128,65538,0,0,0,0,0,65576,0,0,0,0,1202154746,4222755303,3873958283,4024953600,4126012299,4176934804,4217764409,4250664050,4273864222,4288806716,2490349,6750285,8126582,7733371,6488174,4980824,3473472,2293804,1245211,1245197 diff --git a/tools/ctl/ipc3/eq_fir/pass.txt b/tools/ctl/ipc3/eq_fir/pass.txt index 5ba02fc7d7fd..501ef2821697 100644 --- a/tools/ctl/ipc3/eq_fir/pass.txt +++ b/tools/ctl/ipc3/eq_fir/pass.txt @@ -1 +1 @@ -4607827,0,56,50331648,0,0,0,0,56,65538,0,0,0,0,4294967295,4294901764,0,0,0,0,16384,0, +3,88,4607827,0,56,50450433,0,0,0,0,56,65538,0,0,0,0,4294967295,4294901764,0,0,0,0,16384,0 diff --git a/tools/ctl/ipc3/eq_iir/bandpass.txt b/tools/ctl/ipc3/eq_iir/bandpass.txt index 7c6e3f410a82..214dc382fd85 100644 --- a/tools/ctl/ipc3/eq_iir/bandpass.txt +++ b/tools/ctl/ipc3/eq_iir/bandpass.txt @@ -1 +1 @@ -4607827,0,116,50331648,0,0,0,0,116,2,1,0,0,0,0,0,0,2,2,0,0,0,0,3316150158,2048164275,513807534,3267352229,513807534,0,16384,3867454526,1191025347,38870735,77741469,38870735,4294967292,24197, +3,148,4607827,0,116,50450433,0,0,0,0,116,2,1,0,0,0,0,0,0,2,2,0,0,0,0,3316150158,2048164275,513807534,3267352229,513807534,0,16384,3867454526,1191025347,38870735,77741469,38870735,4294967292,24197 diff --git a/tools/ctl/ipc3/eq_iir/bassboost.txt b/tools/ctl/ipc3/eq_iir/bassboost.txt index 1c874bfebba8..82e849f5603e 100644 --- a/tools/ctl/ipc3/eq_iir/bassboost.txt +++ b/tools/ctl/ipc3/eq_iir/bassboost.txt @@ -1 +1 @@ -4607827,0,116,50331648,0,0,0,0,116,2,1,0,0,0,0,0,0,2,2,0,0,0,0,3227172081,2141520527,536653443,3221660410,536653443,0,16384,3260252783,2107733822,161646111,3961037800,172645501,4294967294,27910, +3,148,4607827,0,116,50450433,0,0,0,0,116,2,1,0,0,0,0,0,0,2,2,0,0,0,0,3227172081,2141520527,536653443,3221660410,536653443,0,16384,3260252783,2107733822,161646111,3961037800,172645501,4294967294,27910 diff --git a/tools/ctl/ipc3/eq_iir/bundle.txt b/tools/ctl/ipc3/eq_iir/bundle.txt index cad5b7446b97..ef8a861b777f 100644 --- a/tools/ctl/ipc3/eq_iir/bundle.txt +++ b/tools/ctl/ipc3/eq_iir/bundle.txt @@ -1 +1 @@ -4607827,0,408,50397184,0,0,0,0,408,2,5,0,0,0,0,2,2,1,1,0,0,0,0,0,0,0,0,538145694,0,32690,3,3,0,0,0,0,3237960220,2130690484,297056159,3694463533,303476880,0,16384,3302357025,2064935920,245217319,3776455865,274003881,0,16384,4106268671,4130185751,69182517,4179658584,365641401,4294967292,25468,2,2,0,0,0,0,3227172081,2141520527,536653443,3221660410,536653443,0,16384,3260252783,2107733822,161646111,3961037800,172645501,4294967294,27910,2,2,0,0,0,0,3316150158,2048164275,513807534,3267352229,513807534,0,16384,3867454526,1191025347,38870735,77741469,38870735,4294967292,24197,1,1,0,0,0,0,3231118179,2137545158,535660909,3223645479,535660909,4294967292,20432, +3,440,4607827,0,408,50450433,0,0,0,0,408,2,5,0,0,0,0,2,2,1,1,0,0,0,0,0,0,0,0,538145694,0,32690,3,3,0,0,0,0,3237960220,2130690484,297056159,3694463533,303476880,0,16384,3302357025,2064935920,245217319,3776455865,274003881,0,16384,4106268671,4130185751,69182517,4179658584,365641401,4294967292,25468,2,2,0,0,0,0,3227172081,2141520527,536653443,3221660410,536653443,0,16384,3260252783,2107733822,161646111,3961037800,172645501,4294967294,27910,2,2,0,0,0,0,3316150158,2048164275,513807534,3267352229,513807534,0,16384,3867454526,1191025347,38870735,77741469,38870735,4294967292,24197,1,1,0,0,0,0,3240919741,2127607086,533187596,3228592105,533187596,4294967292,20433 diff --git a/tools/ctl/ipc3/eq_iir/flat.txt b/tools/ctl/ipc3/eq_iir/flat.txt index b62751a8d79f..25fc6796f600 100644 --- a/tools/ctl/ipc3/eq_iir/flat.txt +++ b/tools/ctl/ipc3/eq_iir/flat.txt @@ -1 +1 @@ -4607827,0,88,50331648,0,0,0,0,88,2,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,538145694,0,32690, +3,120,4607827,0,88,50450433,0,0,0,0,88,2,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,538145694,0,32690 diff --git a/tools/ctl/ipc3/eq_iir/highpass_20hz_0db_48khz.txt b/tools/ctl/ipc3/eq_iir/highpass_20hz_0db_48khz.txt index b8a91e11868f..e642a5fc82b2 100644 --- a/tools/ctl/ipc3/eq_iir/highpass_20hz_0db_48khz.txt +++ b/tools/ctl/ipc3/eq_iir/highpass_20hz_0db_48khz.txt @@ -1 +1 @@ -4607827,0,88,50380800,0,0,0,0,88,2,1,0,0,0,0,0,0,1,1,0,0,0,0,3225193546,2143508228,537150400,3220666496,537150400,0,32690, +3,120,4607827,0,88,50450433,0,0,0,0,88,2,1,0,0,0,0,0,0,1,1,0,0,0,0,3225193546,2143508228,537150400,3220666496,537150400,0,32690 diff --git a/tools/ctl/ipc3/eq_iir/highpass_30hz_0db_48khz.txt b/tools/ctl/ipc3/eq_iir/highpass_30hz_0db_48khz.txt index d5077e402bfd..4bc0d715fd96 100644 --- a/tools/ctl/ipc3/eq_iir/highpass_30hz_0db_48khz.txt +++ b/tools/ctl/ipc3/eq_iir/highpass_30hz_0db_48khz.txt @@ -1 +1 @@ -4607827,0,88,50380800,0,0,0,0,88,2,1,0,0,0,0,0,0,1,1,0,0,0,0,3227172081,2141520527,536653443,3221660410,536653443,0,32690, +3,120,4607827,0,88,50450433,0,0,0,0,88,2,1,0,0,0,0,0,0,1,1,0,0,0,0,3227172081,2141520527,536653443,3221660410,536653443,0,32690 diff --git a/tools/ctl/ipc3/eq_iir/highpass_40hz_0db_48khz.txt b/tools/ctl/ipc3/eq_iir/highpass_40hz_0db_48khz.txt index ebbd75c3c248..b132779d1ace 100644 --- a/tools/ctl/ipc3/eq_iir/highpass_40hz_0db_48khz.txt +++ b/tools/ctl/ipc3/eq_iir/highpass_40hz_0db_48khz.txt @@ -1 +1 @@ -4607827,0,88,50380800,0,0,0,0,88,2,1,0,0,0,0,0,0,1,1,0,0,0,0,3229146956,2139532835,536156946,3222653403,536156946,0,32690, +3,120,4607827,0,88,50450433,0,0,0,0,88,2,1,0,0,0,0,0,0,1,1,0,0,0,0,3229146956,2139532835,536156946,3222653403,536156946,0,32690 diff --git a/tools/ctl/ipc3/eq_iir/highpass_50hz_0db_48khz.txt b/tools/ctl/ipc3/eq_iir/highpass_50hz_0db_48khz.txt index 19d82f920b67..c25060036801 100644 --- a/tools/ctl/ipc3/eq_iir/highpass_50hz_0db_48khz.txt +++ b/tools/ctl/ipc3/eq_iir/highpass_50hz_0db_48khz.txt @@ -1 +1 @@ -4607827,0,88,50380800,0,0,0,0,88,2,1,0,0,0,0,0,0,1,1,0,0,0,0,3231118179,2137545158,535660909,3223645479,535660909,0,32690, +3,120,4607827,0,88,50450433,0,0,0,0,88,2,1,0,0,0,0,0,0,1,1,0,0,0,0,3231118179,2137545158,535660909,3223645479,535660909,0,32690 diff --git a/tools/ctl/ipc3/eq_iir/loudness.txt b/tools/ctl/ipc3/eq_iir/loudness.txt index 76a52301d281..1cf6a66fa25a 100644 --- a/tools/ctl/ipc3/eq_iir/loudness.txt +++ b/tools/ctl/ipc3/eq_iir/loudness.txt @@ -1 +1 @@ -4607827,0,204,50331648,0,0,0,0,204,4,2,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,538145694,0,32690,3,3,0,0,0,0,3237960220,2130690484,297056159,3694463533,303476880,0,16384,3302357025,2064935920,245217319,3776455865,274003881,0,16384,4106268671,4130185751,69182517,4179658584,365641401,4294967292,25468, +3,236,4607827,0,204,50450433,0,0,0,0,204,4,2,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,538145694,0,32690,3,3,0,0,0,0,3237960220,2130690484,297056159,3694463533,303476880,0,16384,3302357025,2064935920,245217319,3776455865,274003881,0,16384,4106268671,4130185751,69182517,4179658584,365641401,4294967292,25468 diff --git a/tools/ctl/ipc3/eq_iir/pass.txt b/tools/ctl/ipc3/eq_iir/pass.txt index e8545206de29..ce79acad80fd 100644 --- a/tools/ctl/ipc3/eq_iir/pass.txt +++ b/tools/ctl/ipc3/eq_iir/pass.txt @@ -1 +1 @@ -4607827,0,88,50331648,0,0,0,0,88,2,1,0,0,0,0,4294967295,4294967295,1,1,0,0,0,0,0,0,0,0,538145694,0,32690, +3,120,4607827,0,88,50450433,0,0,0,0,88,2,1,0,0,0,0,4294967295,4294967295,1,1,0,0,0,0,0,0,0,0,538145694,0,32690 diff --git a/tools/ctl/ipc4/drc/passthrough.txt b/tools/ctl/ipc4/drc/passthrough.txt index 910b8e56f758..e650ab9a26e3 100644 --- a/tools/ctl/ipc4/drc/passthrough.txt +++ b/tools/ctl/ipc4/drc/passthrough.txt @@ -1 +1 @@ -877023059,0,108,50438144,0,0,0,0,108,0,0,0,0,0,3892314112,503316480,201326592,6442451,67748529,89478485,2030160,9723989,4285175934,33474947,575096676,24401431,7456540,4286019447,2062296,5,4423680,294359,2477728,622039,46513, +3,140,877023059,0,108,50450433,0,0,0,0,108,0,0,0,0,0,3892314112,503316480,201326592,6442451,67748529,89478485,2030160,9723989,4285175934,33474947,575096676,24401431,7456540,4286019447,2062296,5,4423680,294359,2477728,622039,46513 diff --git a/tools/ctl/ipc4/eq_fir/flat.txt b/tools/ctl/ipc4/eq_fir/flat.txt index 8e6670a76d18..5fd026ca0c20 100644 --- a/tools/ctl/ipc4/eq_fir/flat.txt +++ b/tools/ctl/ipc4/eq_fir/flat.txt @@ -1 +1 @@ -877023059,0,56,50438144,0,0,0,0,56,65538,0,0,0,0,0,4294901764,0,0,0,0,16384,0, +3,88,877023059,0,56,50450433,0,0,0,0,56,65538,0,0,0,0,0,4294901764,0,0,0,0,16384,0 diff --git a/tools/ctl/ipc4/eq_fir/loudness.txt b/tools/ctl/ipc4/eq_fir/loudness.txt index 969f50369e1e..e5093f015b0e 100644 --- a/tools/ctl/ipc4/eq_fir/loudness.txt +++ b/tools/ctl/ipc4/eq_fir/loudness.txt @@ -1 +1 @@ -877023059,0,584,50438144,0,0,0,0,584,131076,0,0,0,0,65537,65537,4294901764,0,0,0,0,16384,0,252,0,0,0,0,65537,65537,65537,65537,131073,131074,131074,196611,196611,262147,262148,327685,393221,393222,458759,524296,589833,655370,720907,786444,851981,983054,1048591,1179665,1245202,1376276,1507350,1638424,1769498,1966109,2162719,2359330,2621478,2818089,3080237,3407922,3670070,3997755,4325440,4718661,5046347,5505105,5963863,6422622,6815845,7274604,7733362,8192121,8781953,9568396,10420376,11272357,12058802,12976318,14155982,15335649,16056559,16515324,16711960,24117551,70844611,3920495315,3920522431,70845139,24117443,16711983,16515352,16056572,15335663,14156001,12976334,12058814,11272370,10420389,9568408,8781964,8192129,7733369,7274610,6815852,6422629,5963870,5505111,5046353,4718667,4325445,3997760,3670075,3407926,3080242,2818093,2621481,2359334,2162722,1966111,1769501,1638426,1507352,1376278,1245204,1179666,1048593,983055,851982,786445,720908,655371,589834,524297,458760,393223,393222,327685,262149,262148,196611,196611,131075,131074,131074,65537,65537,65537,65537,1,0, +3,616,877023059,0,584,50450433,0,0,0,0,584,131076,0,0,0,0,65537,65537,4294901764,0,0,0,0,16384,0,252,0,0,0,0,65537,65537,65537,65537,131073,131074,131074,196611,196611,262147,262148,327685,393221,393222,458759,524296,589833,655370,720907,786444,851981,983054,1048591,1179665,1245202,1376276,1507350,1638424,1769498,1966109,2162719,2359330,2621478,2818089,3080237,3407922,3670070,3997755,4325440,4718661,5046347,5505105,5963863,6422622,6815845,7274604,7733362,8192121,8781953,9568396,10420376,11272357,12058802,12976318,14155982,15335649,16056559,16515324,16711960,24117551,70844611,3920495315,3920522431,70845139,24117443,16711983,16515352,16056572,15335663,14156001,12976334,12058814,11272370,10420389,9568408,8781964,8192129,7733369,7274610,6815852,6422629,5963870,5505111,5046353,4718667,4325445,3997760,3670075,3407926,3080242,2818093,2621481,2359334,2162722,1966111,1769501,1638426,1507352,1376278,1245204,1179666,1048593,983055,851982,786445,720908,655371,589834,524297,458760,393223,393222,327685,262149,262148,196611,196611,131075,131074,131074,65537,65537,65537,65537,1,0 diff --git a/tools/ctl/ipc4/eq_fir/mid.txt b/tools/ctl/ipc4/eq_fir/mid.txt index d62ef102fb4e..36d74f693e46 100644 --- a/tools/ctl/ipc4/eq_fir/mid.txt +++ b/tools/ctl/ipc4/eq_fir/mid.txt @@ -1 +1 @@ -877023059,0,128,50438144,0,0,0,0,128,65538,0,0,0,0,0,65576,0,0,0,0,1202154746,4222755303,3873958283,4024953600,4126012299,4176934804,4217764409,4250664050,4273864222,4288806716,2490349,6750285,8126582,7733371,6488174,4980824,3473472,2293804,1245211,1245197, +3,160,877023059,0,128,50450433,0,0,0,0,128,65538,0,0,0,0,0,65576,0,0,0,0,1202154746,4222755303,3873958283,4024953600,4126012299,4176934804,4217764409,4250664050,4273864222,4288806716,2490349,6750285,8126582,7733371,6488174,4980824,3473472,2293804,1245211,1245197 diff --git a/tools/ctl/ipc4/eq_fir/pass.txt b/tools/ctl/ipc4/eq_fir/pass.txt index d095c87b1aea..5decf09aed40 100644 --- a/tools/ctl/ipc4/eq_fir/pass.txt +++ b/tools/ctl/ipc4/eq_fir/pass.txt @@ -1 +1 @@ -877023059,0,56,50438144,0,0,0,0,56,65538,0,0,0,0,4294967295,4294901764,0,0,0,0,16384,0, +3,88,877023059,0,56,50450433,0,0,0,0,56,65538,0,0,0,0,4294967295,4294901764,0,0,0,0,16384,0 diff --git a/tools/ctl/ipc4/eq_iir/bandpass.txt b/tools/ctl/ipc4/eq_iir/bandpass.txt index 6163013a65cb..3509ec8c7cf2 100644 --- a/tools/ctl/ipc4/eq_iir/bandpass.txt +++ b/tools/ctl/ipc4/eq_iir/bandpass.txt @@ -1 +1 @@ -877023059,0,116,50438144,0,0,0,0,116,2,1,0,0,0,0,0,0,2,2,0,0,0,0,3316150158,2048164275,513807534,3267352229,513807534,0,16384,3867454526,1191025347,38870735,77741469,38870735,4294967292,24197, +3,148,877023059,0,116,50450433,0,0,0,0,116,2,1,0,0,0,0,0,0,2,2,0,0,0,0,3316150158,2048164275,513807534,3267352229,513807534,0,16384,3867454526,1191025347,38870735,77741469,38870735,4294967292,24197 diff --git a/tools/ctl/ipc4/eq_iir/bassboost.txt b/tools/ctl/ipc4/eq_iir/bassboost.txt index 92bb845c5142..8d96a8c7fc68 100644 --- a/tools/ctl/ipc4/eq_iir/bassboost.txt +++ b/tools/ctl/ipc4/eq_iir/bassboost.txt @@ -1 +1 @@ -877023059,0,116,50438144,0,0,0,0,116,2,1,0,0,0,0,0,0,2,2,0,0,0,0,3227172081,2141520527,536653443,3221660410,536653443,0,16384,3260252783,2107733822,161646111,3961037800,172645501,4294967294,27910, +3,148,877023059,0,116,50450433,0,0,0,0,116,2,1,0,0,0,0,0,0,2,2,0,0,0,0,3227172081,2141520527,536653443,3221660410,536653443,0,16384,3260252783,2107733822,161646111,3961037800,172645501,4294967294,27910 diff --git a/tools/ctl/ipc4/eq_iir/flat.txt b/tools/ctl/ipc4/eq_iir/flat.txt index 6b787a743fd5..cb78a292eda8 100644 --- a/tools/ctl/ipc4/eq_iir/flat.txt +++ b/tools/ctl/ipc4/eq_iir/flat.txt @@ -1 +1 @@ -877023059,0,88,50438144,0,0,0,0,88,2,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,538145694,0,32690, +3,120,877023059,0,88,50450433,0,0,0,0,88,2,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,538145694,0,32690 diff --git a/tools/ctl/ipc4/eq_iir/highpass_20hz_0db_48khz.txt b/tools/ctl/ipc4/eq_iir/highpass_20hz_0db_48khz.txt index bbe8a81eeaa6..6d2ced3f43a3 100644 --- a/tools/ctl/ipc4/eq_iir/highpass_20hz_0db_48khz.txt +++ b/tools/ctl/ipc4/eq_iir/highpass_20hz_0db_48khz.txt @@ -1 +1 @@ -877023059,0,88,50438144,0,0,0,0,88,2,1,0,0,0,0,0,0,1,1,0,0,0,0,3225193546,2143508228,537150400,3220666496,537150400,0,32690, +3,120,877023059,0,88,50450433,0,0,0,0,88,2,1,0,0,0,0,0,0,1,1,0,0,0,0,3225193546,2143508228,537150400,3220666496,537150400,0,32690 diff --git a/tools/ctl/ipc4/eq_iir/highpass_30hz_0db_48khz.txt b/tools/ctl/ipc4/eq_iir/highpass_30hz_0db_48khz.txt index c7ffbd526f1c..a87e38ddcbfa 100644 --- a/tools/ctl/ipc4/eq_iir/highpass_30hz_0db_48khz.txt +++ b/tools/ctl/ipc4/eq_iir/highpass_30hz_0db_48khz.txt @@ -1 +1 @@ -877023059,0,88,50438144,0,0,0,0,88,2,1,0,0,0,0,0,0,1,1,0,0,0,0,3227172081,2141520527,536653443,3221660410,536653443,0,32690, +3,120,877023059,0,88,50450433,0,0,0,0,88,2,1,0,0,0,0,0,0,1,1,0,0,0,0,3227172081,2141520527,536653443,3221660410,536653443,0,32690 diff --git a/tools/ctl/ipc4/eq_iir/highpass_40hz_0db_48khz.txt b/tools/ctl/ipc4/eq_iir/highpass_40hz_0db_48khz.txt index 62c504c1276b..3aafc5060347 100644 --- a/tools/ctl/ipc4/eq_iir/highpass_40hz_0db_48khz.txt +++ b/tools/ctl/ipc4/eq_iir/highpass_40hz_0db_48khz.txt @@ -1 +1 @@ -877023059,0,88,50438144,0,0,0,0,88,2,1,0,0,0,0,0,0,1,1,0,0,0,0,3229146956,2139532835,536156946,3222653403,536156946,0,32690, +3,120,877023059,0,88,50450433,0,0,0,0,88,2,1,0,0,0,0,0,0,1,1,0,0,0,0,3229146956,2139532835,536156946,3222653403,536156946,0,32690 diff --git a/tools/ctl/ipc4/eq_iir/highpass_50hz_0db_48khz.txt b/tools/ctl/ipc4/eq_iir/highpass_50hz_0db_48khz.txt index 8630e65c6cd6..b7822d4dc230 100644 --- a/tools/ctl/ipc4/eq_iir/highpass_50hz_0db_48khz.txt +++ b/tools/ctl/ipc4/eq_iir/highpass_50hz_0db_48khz.txt @@ -1 +1 @@ -877023059,0,88,50438144,0,0,0,0,88,2,1,0,0,0,0,0,0,1,1,0,0,0,0,3231118179,2137545158,535660909,3223645479,535660909,0,32690, +3,120,877023059,0,88,50450433,0,0,0,0,88,2,1,0,0,0,0,0,0,1,1,0,0,0,0,3231118179,2137545158,535660909,3223645479,535660909,0,32690 diff --git a/tools/ctl/ipc4/eq_iir/loudness.txt b/tools/ctl/ipc4/eq_iir/loudness.txt index 4ab0bb1f3187..fed1b4f25578 100644 --- a/tools/ctl/ipc4/eq_iir/loudness.txt +++ b/tools/ctl/ipc4/eq_iir/loudness.txt @@ -1 +1 @@ -877023059,0,204,50438144,0,0,0,0,204,4,2,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,538145694,0,32690,3,3,0,0,0,0,3237960220,2130690484,297056159,3694463533,303476880,0,16384,3302357025,2064935920,245217319,3776455865,274003881,0,16384,4106268671,4130185751,69182517,4179658584,365641401,4294967292,25468, +3,236,877023059,0,204,50450433,0,0,0,0,204,4,2,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,538145694,0,32690,3,3,0,0,0,0,3237960220,2130690484,297056159,3694463533,303476880,0,16384,3302357025,2064935920,245217319,3776455865,274003881,0,16384,4106268671,4130185751,69182517,4179658584,365641401,4294967292,25468 diff --git a/tools/ctl/ipc4/eq_iir/pass.txt b/tools/ctl/ipc4/eq_iir/pass.txt index 29830d0fdf0f..ee0d545ef39e 100644 --- a/tools/ctl/ipc4/eq_iir/pass.txt +++ b/tools/ctl/ipc4/eq_iir/pass.txt @@ -1 +1 @@ -877023059,0,88,50438144,0,0,0,0,88,2,1,0,0,0,0,4294967295,4294967295,1,1,0,0,0,0,0,0,0,0,538145694,0,32690, +3,120,877023059,0,88,50450433,0,0,0,0,88,2,1,0,0,0,0,4294967295,4294967295,1,1,0,0,0,0,0,0,0,0,538145694,0,32690 From 8f45fffba756ed822da7bf07ec0b217bc3b983b2 Mon Sep 17 00:00:00 2001 From: Seppo Ingalsuo Date: Mon, 30 Dec 2024 14:45:37 +0200 Subject: [PATCH 5/6] Tools: Tune: Common: Remove trailing comma from printed blob words The comma from line end and blob end is removed. With this change the blobs exported are identical to retrieved blobs with sof-ctl tool and e.g. can be compared directly. Signed-off-by: Seppo Ingalsuo --- tools/tune/common/sof_alsactl_write.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/tune/common/sof_alsactl_write.m b/tools/tune/common/sof_alsactl_write.m index b8676f7a0987..02bf9ec7dd27 100644 --- a/tools/tune/common/sof_alsactl_write.m +++ b/tools/tune/common/sof_alsactl_write.m @@ -28,6 +28,6 @@ function sof_alsactl_write(fn, blob8) for i=1:n_new-1 fprintf(fh, '%ld,', blob32(i)); end -fprintf(fh, '%ld,\n', blob32(end)); +fprintf(fh, '%ld\n', blob32(end)); fclose(fh); end From e8c853d1af4d080424c26f13d252a9094673b141 Mon Sep 17 00:00:00 2001 From: Seppo Ingalsuo Date: Tue, 31 Dec 2024 16:46:16 +0200 Subject: [PATCH 6/6] Scripts: Ensure user's sof-ctl is up-to-date before blobs rebuild The sof-ctl is used to create the bytes control SOF ABI header for the binary blob files. These changes ensure that the sof-ctl is built from tools and that the correct version of sof-ctl exists in user's path. Signed-off-by: Seppo Ingalsuo --- scripts/sof-rebuild-processing-comp-blobs.sh | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/scripts/sof-rebuild-processing-comp-blobs.sh b/scripts/sof-rebuild-processing-comp-blobs.sh index 26410c811259..b1c11df49189 100755 --- a/scripts/sof-rebuild-processing-comp-blobs.sh +++ b/scripts/sof-rebuild-processing-comp-blobs.sh @@ -10,10 +10,24 @@ if [ -z "${SOF_WORKSPACE}" ]; then fi if ! command -v octave &> /dev/null; then - echo "Error: this scrip needs GNU Octave, see https://octave.org/" + echo "Error: this script needs GNU Octave, see https://octave.org/" exit 1 fi +"$SOF_WORKSPACE"/sof/scripts/build-tools.sh -c + +if ! command -v sof-ctl &> /dev/null; then + echo "Error: The sof-ctl utility is not found from path for executables. It is needed" + echo " to retrieve SOF ABI header It can be added with e.g. symlink to user's binaries:" + echo " ln -s $SOF_WORKSPACE/sof/tools/build_tools/ctl/sof-ctl $HOME/bin/sof-ctl" + exit 1 +fi + +cmp --quiet "$(which sof-ctl)" "$SOF_WORKSPACE"/sof/tools/build_tools/ctl/sof-ctl || { + echo "Error: The sof-ctl in user's path is not the same as sof-ctl build from tools." + exit 1 +} + OCTAVE="octave --quiet --no-window-system" cd "$SOF_WORKSPACE"/sof/src/audio/aria/tune; $OCTAVE sof_aria_blobs.m cd "$SOF_WORKSPACE"/sof/src/audio/crossover/tune; $OCTAVE sof_example_crossover.m