2361265_zh-CN

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2361265_zh-CN

2361265_zh-CN

dsp 渲染器单元测试无法在 i.mx8QM-MEK 上设置 XAF 渲染器组件

您好,

我们正试图执行 UG10167 i.MX DSP 用户指南 - 修订版 - 中的单元测试 。LF6.6.36_2.1.0、但我们面临着困难。也就是说,我们已经能够下载并编译带有 tensilica 工具链的 dsp_framework。启动 hifi4.bin 可以按预期运行:


# echo start > /sys/class/remoteproc/remoteproc2/state
# dmesg
...
[ 2003.327475] remoteproc remoteproc2: powering up imx-dsp-rproc
[ 2003.328807] remoteproc remoteproc2: Booting fw image imx/dsp/hifi4.bin, size 881668
[ 2003.352398] rproc-virtio rproc-virtio.2.auto: assigned reserved memory node vdev0buffer@94300000
[ 2003.353925] virtio_rpmsg_bus virtio0: rpmsg host is online
[ 2003.353997] rproc-virtio rproc-virtio.2.auto: registered virtio0 (type 7)
[ 2003.354014] remoteproc remoteproc2: remote processor imx-dsp-rproc is now up
[ 2003.354255] virtio_rpmsg_bus virtio0: creating channel rpmsg-raw addr 0x1
[ 2003.354938] virtio_rpmsg_bus virtio0: creating channel rpmsg-raw addr 0x2

但尝试执行 mp3 渲染器测试时却出现了故障:

# /unit_tests/DSP/dsp_rend_test.out -f10 -itest.mp3
****************************************************************
Cadence Audio Framework (Hostless) : 'Decoder + Renderer'
Build: NON_XTENSA, RTOS: Linux, On: May  6 2026 13:02:32
Copyright (c) 2015-2020 Cadence Design Systems, Inc.
Lib Name        : Audio Framework (Hostless)
Lib Version     : 2.6
API Version     : 2.0
****************************************************************
Audio Device Ready
get samplerate 44100, channel 2, width 16
renderer_setup failed, Error code : -110

我们曾尝试启用调试,但根据 DSP 文档,这不适用于 i.MX8QM-MEK。
另一件事是,在这次提交到 linux-imx 存储库之前,HiFi4 固件的内存分配地址是相同的 i.MX8 QuadxPlus 和 i.MX8 QuadMax
MEK:https://github.com/nxp-imx/linux-imx/commit/01440e5d67c873caccd06e0fc0498ddc70c0f15a

在这里,dsp 节点从

  • dsp:dsp@596e8000<- 与 QuadXPlus 相同
  • dsp:dsp@556e8000<- 上述提交后已更改

我们能够将 dsp 节点恢复到之前的地址并启动 im x8qm-mek-rpmsg.dtb:


# find /sys/firmware/devicetree/base/ -name "*dsp*"
/sys/firmware/devicetree/base/bus@5d000000/mailbox@5d280000/fsl,dsp_ap_mu_id
/sys/firmware/devicetree/base/__symbols__/dsp_reserved_heap
/sys/firmware/devicetree/base/__symbols__/dsp_lpcg
/sys/firmware/devicetree/base/__symbols__/dsp_ram_lpcg
/sys/firmware/devicetree/base/__symbols__/dsp_vdev0vring1
/sys/firmware/devicetree/base/__symbols__/dsp_reserved
/sys/firmware/devicetree/base/__symbols__/dsp_vdev0buffer
/sys/firmware/devicetree/base/__symbols__/dsp
/sys/firmware/devicetree/base/__symbols__/vpu_subsys_dsp
/sys/firmware/devicetree/base/__symbols__/dsp_vdev0vring0
/sys/firmware/devicetree/base/reserved-memory/dsp_reserved_heap@93400000
/sys/firmware/devicetree/base/reserved-memory/dsp@92400000
/sys/firmware/devicetree/base/bus@59000000/dsp@596e8000

我们这样做是因为 tensilica 工具链链接器数据是为 i.MX8 QuadXPlus 地址配置的。但这也无济于事,错误依旧。

双向

gplay-1.0 test.mp3

以及

aplay test.wav 

一旦我们将输出改为 3.5 毫米插孔,它就能正常工作。


难道我们缺少编解码器二进制文件吗?

# ls /usr/lib/imx-mm/audio-codec/dsp/
lib_aacd_wrap_dsp.so lib_dsp_voice_process_dummy.so lib_nbamrd_wrap_dsp.so lib_vorbisd_wrap_dsp.so.3
lib_aacd_wrap_dsp.so.3 lib_mp3d_wrap_dsp.so lib_nbamrd_wrap_dsp.so.1 lib_wbamrd_wrap_dsp.so
lib_mp3d_wrap_dsp.so.3 lib_vorbisd_wrap_dsp.so lib_wbamrd_wrap_dsp.so.1


在音频渲染中启用 XAF 是我们使用案例的必备条件,因此希望得到任何帮助。


谢谢!

杜桑

i.MX 8 系列 | i.MX 8QuadMax (8QM) | 8QuadPlus多媒体Re: dsp renderer unit test fails to setup the XAF renderer component on i.MX8QM-MEK

你好

我们不支持 i.MX8QM& i.MX8QXP 平台上的回放和捕捉器,这种情况下只支持 i.MX8MP。

顺祝商祺!

Re: dsp renderer unit test fails to setup the XAF renderer component on i.MX8QM-MEK

感谢您的快速回复。


请说明出现这种情况的原因,是与硬件、DSP 固件还是单元测试应用程序有关?


此致,

杜桑

Re: dsp renderer unit test fails to setup the XAF renderer component on i.MX8QM-MEK

你好

根据内部团队的说法,i.mx8QM/i.mx8QXP主板之所以被移除,是因为需要额外的配置,就像带有专用设备树的i.mx8MP一样。

与您报告的问题相同。

顺祝商祺!

Re: dsp renderer unit test fails to setup the XAF renderer component on i.MX8QM-MEK

感谢您提供的信息、

因此,我想我找到了删除你提到的自定义 dts 的提交 :
https://github.com/nxp-imx/linux-imx/commit/0ba5556c6fc3249a1973f57697d740ba0e4c3681

并在此基础上进行了调整。附在上面。然而,问题依然存在。

我想再深入研究一下 DSP 固件,但由于某些原因,我无法通过 UART 启用固件调试功能。以下是我的设置:

  1. 根据文档为特定内核版本制作了一个固件,DEBUG=1 ,并将 LPUART_BASE 地址修改为 UART2。
  2. 在 DSP 节点中添加了 UART2 (DBG)
  3. 文档中有这样的注释:
    调试信息无法打印在i.MX 8QuadMax主板上,因为UART是使用的

    所以我将引导加载程序更新为 imx-boot -imx8qmmek-sd.bin-flash_spl,它允许将 UART1,2 或 3 分配给 DS P 节点。没有它,启动期间将无法解析 DSP 节点。

Linux 端一旦通过 rproc 向 DSP 发出启动命令,UART 时钟就会启用并归 DSP 节点所有。行为不变,但没有 UART 输出。

如何通过 UART 启用 DSP 调试,可以吗?有关 UART 被占用的问题是由于解码器固件还是其他原因造成的?

谢谢!

杜桑


Tags (1)
No ratings
Version history
Last update:
‎05-16-2026 02:35 AM
Updated by: