sof/tools
Seppo Ingalsuo 676e72a895 Topology: EQ IIR: Allow capture with all formats with pipe-eq-capture
This patch adds to IIR EQ capability to convert from s32 source to
s16/s24/s32 sink formats in normal PCM samples equalization. The
feature is useful in microphone equalization where input dynamic
range is high but where pipeline needs to be lower word length. A
typical IIR high-pass response when combined with gain will reduce
the dynamic range by suppressing lowest frequencies from signal to
better fit the smaller sample word length.

The PCM capability in topology macro pipe-eq-capture.m4 is changed to
allow the s16/s24/s32 formats.

The patch also includes 4096 bytes increase to SOF_TEXT_SIZE for CNL
platform.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2018-12-20 14:08:32 +00:00
..
coredumper Move SOFT into sub folder for SOF merge 2018-11-24 23:27:24 -08:00
eqctl EQ: Update ABI version number in configuration to match current version 2018-12-19 10:28:25 +00:00
kmod_scripts Move SOFT into sub folder for SOF merge 2018-11-24 23:27:24 -08:00
logger logger: show version numbers with the ABI mismatch error 2018-12-05 11:08:20 +00:00
rimage/keys Move SOFT into sub folder for SOF merge 2018-11-24 23:27:24 -08:00
scripts Move SOFT into sub folder for SOF merge 2018-11-24 23:27:24 -08:00
test Tools: Update SRC tool for 50 kHz modes, SRC testbench, add topology 2018-12-18 11:29:32 +00:00
topology Topology: EQ IIR: Allow capture with all formats with pipe-eq-capture 2018-12-20 14:08:32 +00:00
tune EQ: Update ABI version number in configuration to match current version 2018-12-19 10:28:25 +00:00
.gitignore Move SOFT into sub folder for SOF merge 2018-11-24 23:27:24 -08:00
.travis.yml Move SOFT into sub folder for SOF merge 2018-11-24 23:27:24 -08:00
Makefile.am Move SOFT into sub folder for SOF merge 2018-11-24 23:27:24 -08:00
README Move SOFT into sub folder for SOF merge 2018-11-24 23:27:24 -08:00
autogen.sh Move SOFT into sub folder for SOF merge 2018-11-24 23:27:24 -08:00
configure.ac Move SOFT into sub folder for SOF merge 2018-11-24 23:27:24 -08:00

README

Sound Open Firmware Tools
=========================

This is a collection of open source tools used to develop open source audio
DSP firmwares for ALSA.

Building and Installing
=======================

./autogen.sh (only needed first time)
./configure
make
make install


rimage
======

rimage is used to convert ELF executable firmware files to the firmware file
formats used by the kernel drivers.

e.g.

rimage -i elf_file -o kernel_file -m machine

rimage can also convert kernel firmware formats to flat binaries formats to
assist in debugging :-

e.g. convert to flat binary, then ELF then dissasemble

rimage -i /lib/firmware/intel/reef-byt.ri -o image.bin -b -m byt

xtensa-byt-elf-objcopy -I binary -O elf32-xtensa-le -B xtensa image.bin image.bin.elf

xtensa-byt-elf-objdump -D image.bin.elf > image.dis.txt


sof-logger
======

sof-logger is used to print logs delivered from FW dma_trace mechanism, by searching log
entries in *.ldc file generated by rimage. 

Every entry declared in FW is placed in elf output file (e.g. sof-apl) in 
.static_log_entries section in a form of struct defined in sof/src/include/sof/trace.h
in sof fw repo.

*.ldc file contains snd_sof_logs_header (defined in rmbox/logger_convert.c) 
following by .static_log_entries section incorporated from FW elf file (e.g. sof-apl).
snd_sof_logs_header contains basic information about .static_log_entries section
like base_address and data_length.

sof-logger works by reading entry parameters value and entries addresses from FW
dma_trace mechanism and searching suitable entry in *.ldc file by its address.

Usage sof-logger <option(s)> <file(s)>
			Display mailbox contents
-h			help
-l *.ldc_file		Specify the *.ldc file
-i in_file		Get traces from in_file, instead of the default 
			"/sys/kernel/debug/sof/etrace"
-o out_file		Specify the output file, instead of default stdout
-t			Get traces from "/sys/kernel/debug/sof/trace", instead 
			of the default "/sys/kernel/debug/sof/etrace"
-p			Get traces from stdin, instead of the default 
			"/sys/kernel/debug/sof/etrace"
-c			Set timestamp clock in MHz
-e			Enable checking firmware version with default verification file 
			"/sys/kernel/debug/sof/fw_version"
-v ver_file		Enable checking firmware version with ver_file file, 
			instead of default: "/sys/kernel/debug/sof/fw_version"
-s			Take a snapshot of state


Examples:

- Get traces from "/sys/kernel/debug/sof/etrace" file, verifies fw_version with
  "/sys/kernel/debug/sof/fw_version" and prints logs to stdout

  $ sof-logger -l ldc_file -e

- Get traces from "/sys/kernel/debug/sof/etrace" file, verifies fw_version with
  ver_file file and prints logs to stdout

  $ sof-logger -l ldc_file -v ver_file

- Get traces from "/sys/kernel/debug/sof/etrace" file and prints logs to stdout

  $ sof-logger -l ldc_file

- Get traces from "/sys/kernel/debug/sof/etrace" file and prints logs to
  out_file file

  $ sof-logger -l ldc_file -o out_file

- Get traces from "/sys/kernel/debug/sof/trace" file and prints logs to stdout

  $ sof-logger -l ldc_file -t

- Get traces from "/sys/kernel/debug/sof/trace" file and prints logs to 
  out_file file

  $ sof-logger -l ldc_file -t -o out_file

- Get traces from stdin and prints logs to stdout

  $ sof-logger -l ldc_file -p

- Get traces from stdin and prints logs to out_file file

  $ sof-logger -l ldc_file -p -o out_file

- Get traces from trace_dump file and prints logs to stdout

  $ sof-logger -l ldc_file -i trace_dump

- Get traces from trace_dump file and prints logs to out_file file

  $ sof-logger -l ldc_file -i trace_dump -o out_file

- c flag is intented for defining clock value (in MHz) used to format log 
  timestamps. By default clock value is set to 19.2 (MHz). Below example
  set clock value to 19.9 (MHz).

  $ sof-logger -l ldc_file -i trace_dump -o out_file -c 19.9


tests
=====

To generate all test configuration files:

make tests