mirror of https://github.com/thesofproject/sof.git
a5d32b4c3a
sof audio pipeline with the format of 24bit doesn't work on HDA platform. It is caused by sample data layout. SOF supports S24_LE, and each sample format is like pattern of 0ddd, d stands for data. Samples are padded with 0‟s at the MSB. Link dma copys samples directly to hda bus, but hda bus requires samples layout like pattern of ddd0. Samples are padded with 0‟s at the LSB to left justify the sample within the container. Now there is a volume at the end of hda pipeline. We only need to convert dai type from S24_LE to S32_LE to make volume convert hda data to correct format Signed-off-by: Rander Wang <rander.wang@linux.intel.com> |
||
---|---|---|
.. | ||
coredumper | ||
eqctl | ||
kmod_scripts | ||
logger | ||
rimage/keys | ||
scripts | ||
test | ||
topology | ||
tune | ||
.gitignore | ||
.travis.yml | ||
Makefile.am | ||
README | ||
autogen.sh | ||
configure.ac |
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