Hi team,
Context:
- I'm running your embedded linux distro built by yocto
- SC572 on a custom board
- Running linux on arm core and baremetal application on SHARC core
- Linux app running on ARM core compiled with SDK provided by yocto
- Bare metal app running on SHARC core using windows CCES 2.11.1
- Used mcapi_example to build and debug baremetal sharc core app
- Used Generate LDR and load ldr to generate and load the ldr to board
- Using the ICE1000 debugger with Windows CCES2.11.1 for loading dxe during debugging, and ssh for the arm side
Problem: After successfully running the linux and sharc application following the above process (using windows CCES to load baremetal app at linux runtime), i have generated a LDR from that DXE and tried to load that in Linux userspace. However, the application crashes with the following error when I run echo start > ...
adi-dma 3109b000.dma: DMA error on channel 43, stat = 0x3b400
Modifying the remoteproc code to add debug messages, i see the following, which shows that its going through the LDR and creating DMA descriptors for each section, but its failing to do DMA on channel 43, which i believe is a MDMA channel. I couldn't find any information on what that stat corresponds to:
remoteproc remoteproc0: powering up core1-rproc remoteproc remoteproc0: Booting fw image rdau_sharc_sampler_core1.ldr, size 137736 adi_remoteproc 28240000.core1-rproc: In adi_rproc_load, detected ldr, calling adi_ldr_load adi_remoteproc 28240000.core1-rproc: In adi_ldr_load, firmware size: 137736 adi_remoteproc 28240000.core1-rproc: In adi_ldr_load, calling ldr_load adi_remoteproc 28240000.core1-rproc: In ldr_load() adi_remoteproc 28240000.core1-rproc: Finding dma channel: DMA_MEMCPY adi_remoteproc 28240000.core1-rproc: About to read the headers adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi-dma 3109b000.dma: DMA ERROR, irq = 87 adi-dma 3109b000.dma: DMA error on channel 43, stat = 0x3b400 adi_remoteproc 28240000.core1-rproc: bFlag_fill is 1 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is true, so do memset adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 1 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is true, so do memset adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 1 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is true, so do memset adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 1 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is true, so do memset adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 1 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is true, so do memset adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 1 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is true, so do memset adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 1 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is true, so do memset adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 1 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is true, so do memset adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 1 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is true, so do memset adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 1 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is true, so do memset adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 1 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is true, so do memset adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 1 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is true, so do memset adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 1 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is true, so do memset adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 1 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is true, so do memset adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 1 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is true, so do memset adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 1 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is true, so do memset adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 1 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is true, so do memset adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 1 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is true, so do memset adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 1 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is true, so do memset adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 1 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is true, so do memset adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 1 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is true, so do memset adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 1 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is true, so do memset adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 1 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is true, so do memset adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 1 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is true, so do memset adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 1 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is true, so do memset adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 1 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is true, so do memset adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 1 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is true, so do memset adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 1 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is true, so do memset adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 1 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is true, so do memset adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: DMA engine submitted adi_remoteproc 28240000.core1-rproc: bFlag_fill is 0 adi_remoteproc 28240000.core1-rproc: block_hdr is not empty, start dma transfer, bflag_fill is false, so do memcopy adi_remoteproc 28240000.core1-rproc: is final block header, setting callback adi_remoteproc 28240000.core1-rproc: DMA engine submitted systemd-journald[120]: /dev/kmsg buffer overrun, some messages lost. schedule_timeout: wrong timeout value ffffffff CPU: 0 PID: 240 Comm: rdau Not tainted 5.4.183-yocto-standard #1 Hardware name: SC57x-EZKIT (Device Tree Support) [<c010ccec>] (unwind_backtrace) from [<c010af5c>] (show_stack+0x10/0x14) [<c010af5c>] (show_stack) from [<c0734020>] (schedule_timeout+0x12c/0x14c) [<c0734020>] (schedule_timeout) from [<c052c2e8>] (icc_ioctl+0x1278/0x1b58) [<c052c2e8>] (icc_ioctl) from [<c01e378c>] (do_vfs_ioctl+0x3ec/0x8c8) [<c01e378c>] (do_vfs_ioctl) from [<c01e3c9c>] (ksys_ioctl+0x34/0x60) [<c01e3c9c>] (ksys_ioctl) from [<c0101000>] (ret_fast_syscall+0x0/0x54) Exception stack(0xc94c5fa8 to 0xc94c5ff0) 5fa0: beae1b38 b6f4602c 00000003 00006d0f beae1b38 beae1b30 5fc0: beae1b38 b6f4602c 0000017c 00000036 00000000 00000000 00483f80 00000000 5fe0: b6f45ec8 beae1b34 b6f333d3 b6ea5158
Can you please provide some steps to debug this further?
Attached is my device tree if that's helpful:
/* * Device tree for RDAU board */ /dts-v1/; #include <dt-bindings/input/input.h> #include <dt-bindings/gpio/gpio.h> #include <dt-bindings/pinctrl/adi-adsp.h> #include <dt-bindings/pinctrl/adi-adsp-sru.h> #include "sc57x.dtsi" / { model = "ADI sc572-rdau"; compatible = "adi,sc572-rdau", "adi,sc57x"; aliases { /* serial2 = &uart2; */ }; memory@80000000 { device_type = "memory"; reg = <0x80000000 0xF000000>; }; scb { // button0: button@0 { // compatible = "adi,button-led"; // // en-pins = <&ssw1 2 GPIO_ACTIVE_LOW>, /* PUSHBUTTON1_EN */ // // <&ssw1 3 GPIO_ACTIVE_LOW>; /* LEDS_EN */ // // button_gpio = <40>; // // led_gpio = <77>; // }; // button1: button@1 { // compatible = "adi,button-led"; // // en-pins = <&ssw1 1 GPIO_ACTIVE_LOW>, /* PUSHBUTTON2_EN */ // // <&ssw1 3 GPIO_ACTIVE_LOW>; /* LEDS_EN */ // // button_gpio = <41>; // // led_gpio = <9>; // }; // button2: button@2 { // compatible = "adi,button-led"; // // en-pins = <&ssw1 0 GPIO_ACTIVE_LOW>, /* PUSHBUTTON3_EN */ // // <&ssw1 3 GPIO_ACTIVE_LOW>; /* LEDS_EN */ // // button_gpio = <42>; // // led_gpio = <65>; // }; core1-rproc@0x3108C000 { compatible = "adi,remoteproc"; reg = <0x28240000 0x2000>, <0x20000000 0x200000>; core-id = <1>; core-irq = <84>; firmware-name = "adi_adsp_core1_fw.ldr"; interrupts = <GIC_SPI 206 IRQ_TYPE_EDGE_RISING>; adi,rcu = <&rcu>; adi,l1-da = <0x240000 0x3a0000>; adi,l2-da = <0x20080000 0x200C0000>; adi,tru = <&tru>; adi,tru-master-id = <71>; /* trigger master SOFT4 */ }; // core2-rproc@0x3108C000 { // compatible = "adi,remoteproc"; // reg = <0x28A40000 0x2000>, // <0x20000000 0x200000>; // core-id = <2>; // core-irq = <85>; // firmware-name = "adi_adsp_core2_fw.ldr"; // interrupts = <GIC_SPI 206 IRQ_TYPE_EDGE_RISING>; // adi,rcu = <&rcu>; // adi,l1-da = <0x240000 0x3a0000>; // adi,l2-da = <0x20080000 0x200C0000>; // adi,tru = <&tru>; // adi,tru-master-id = <72>; /* trigger master SOFT5 */ // }; // sound { // compatible = "sc5xx,asoc-card"; // adi,cpu-dai = <&i2s0>; // adi,codec = <&adau1962>, <&adau1979>; // status = "okay"; // }; }; }; &tru { mcapi_to_a5: channel@0 { adi,tru-master-id = <70>; /* trigger master SOFT3 */ adi,tru-slave-id = <71>; /* TRU0_IRQ3 */ }; mcapi_to_sharc0: channel@1 { adi,tru-master-id = <71>; /* trigger master SOFT4 */ adi,tru-slave-id = <75>; /* TRU0_IRQ7 */ }; // mcapi_to_sharc1: channel@2 { // adi,tru-master-id = <72>; /* trigger master SOFT5 */ // adi,tru-slave-id = <79>; /* TRU0_IRQ11 */ // }; }; &uart0 { pinctrl-names = "default"; pinctrl-0 = <&uart0_default>; status = "okay"; }; // &spi0 { // pinctrl-names = "default"; // pinctrl-0 = <&spi0_default>; // status = "okay"; // cs-gpios = <&gpc 6 GPIO_ACTIVE_LOW>; // spidev@0 { // #address-cells = <1>; // size-cells = <1>; // /* this is actually being used to control a tja1145 can transceiver */ // compatible = "rohm,dh2228fv"; // spi-max-frequency = <5000000>; // reg = <0>; // }; // }; //TODO: we dont actually want to assign spi to linux, we want to save it for the SHARC core // &spi0 { // #address-cells = <1>; // #size-cells = <0>; // pinctrl-names = "default"; // pinctrl-0 = <&spi0_default>; // status = "okay"; // cs-gpios = <&gpc 4 GPIO_ACTIVE_LOW>, <&gpc 5 GPIO_ACTIVE_LOW>; // // spidev@0 { // // #address-cells = <1>; // // size-cells = <1>; // // /* this is actually being used to control a tja1145 can transceiver */ // // compatible = "rohm,dh2228fv"; // // spi-max-frequency = <5000000>; // // reg = <0>; // // }; // // this works. node 0 and 1 uses the right registers // adc@0 { // compatible = "ti,ads8688", "adi,generic-spidev"; // reg = <4>; // // vref-supply = <&vdd_supply>; // spi-max-frequency = <17000000>; //setting frequency to 1MHz, can go up to 17MHz // }; // adc@1 { // compatible = "ti,ads8688", "adi,generic-spidev"; // reg = <5>; // // vref-supply = <&vdd_supply>; // spi-max-frequency = <17000000>; // }; // // spidev@0 { // // #address-cells = <1>; // // size-cells = <1>; // // /* this is actually being used to control a tja1145 can transceiver */ // // compatible = "rohm,dh2228fv"; // // spi-max-frequency = <5000000>; // // reg = <0>; // // }; // }; &spi2 { pinctrl-names = "default"; pinctrl-0 = <&spi2_quad>; status = "okay"; cs-gpios = <&gpb 15 GPIO_ACTIVE_LOW>; flash: w25q256@0 { #address-cells = <1>; #size-cells = <1>; compatible = "winbond,w25q256"; spi-max-frequency = <50000000>; reg = <0>; spi-cpol; spi-cpha; spi-tx-bus-width = <4>; spi-rx-bus-width = <4>; partition@0 { label = "uboot (spi)"; reg = <0x0 0x80000>; }; partition@1 { label = "kernel (spi)"; reg = <0x80000 0x580000>; }; partition@2 { label = "root file system (spi)"; reg = <0x600000 0xa00000>; }; partition@3 { label = "software (spi)"; reg = <0x1000000 0xE84700>; }; }; }; // &i2c0 { // status = "okay"; // ssw0: gpio@0x21 { // compatible = "microchip,mcp23017"; // gpio-controller; // #gpio-cells = <2>; // reg = <0x21>; // eeprom-en { // gpio-hog; // gpios = <0 0>; // output-high; // line-name = "~eeprom_en"; // }; // uart0-flow-en { // gpio-hog; // gpios = <1 0>; // output-high; // line-name = "~uart0-flow-en"; // }; // mlb3-en { // gpio-hog; // gpios = <5 0>; // output-high; // line-name = "~mlb3-en"; // }; // can0-en { // gpio-hog; // gpios = <6 0>; // output-high; // line-name = "~can0-en"; // }; // can1-en { // gpio-hog; // gpios = <7 0>; // output-high; // line-name = "~can1-en"; // }; // adau1962-en { // gpio-hog; // gpios = <8 0>; // output-low; // line-name = "adau1962-en"; // }; // adau1979-en { // gpio-hog; // gpios = <9 0>; // output-low; // line-name = "adau1979-en"; // }; // sd-wp-en { // gpio-hog; // gpios = <11 0>; // output-high; // line-name = "~sd-wp-en"; // }; // spi2flash-cs-en { // gpio-hog; // gpios = <12 0>; // output-low; // line-name = "~spi2flash-cs-en"; // }; // spi2d2-d3-en { // gpio-hog; // gpios = <13 0>; // output-low; // line-name = "~spi2-d2-d3-en"; // }; // spdif-optical-en { // gpio-hog; // gpios = <14 0>; // output-high; // line-name = "~spdif-optical-en"; // }; // spdif-digital-en { // gpio-hog; // gpios = <15 0>; // output-high; // line-name = "~spdif-digital-en"; // }; // }; // ssw1: gpio@0x22 { // compatible = "microchip,mcp23017"; // gpio-controller; // #gpio-cells = <2>; // reg = <0x22>; // pushbutton3-en { // gpio-hog; // gpios = <0 0>; // output-high; // line-name = "~pushbutton3-en"; // }; // pushbutton2-en { // gpio-hog; // gpios = <1 0>; // output-high; // line-name = "~pushbutton2-en"; // }; // pushbutton1-en { // gpio-hog; // gpios = <2 0>; // output-high; // line-name = "~pushbutton1-en"; // }; // leds-en { // gpio-hog; // gpios = <3 0>; // output-high; // line-name = "~leds-en"; // }; // flag0-loop { // gpio-hog; // gpios = <4 0>; // output-high; // line-name = "~flag0-loop"; // }; // flag1-loop { // gpio-hog; // gpios = <5 0>; // output-high; // line-name = "~flag1-loop"; // }; // flag2-loop { // gpio-hog; // gpios = <6 0>; // output-high; // line-name = "~flag2-loop"; // }; // flag3-loop { // gpio-hog; // gpios = <7 0>; // output-high; // line-name = "~flag3-loop"; // }; // adau1977-en { // gpio-hog; // gpios = <8 0>; // output-high; // line-name = "adau1977-en"; // }; // adau1977-fault-rst-en { // gpio-hog; // gpios = <9 0>; // output-high; // line-name = "~adau1977-fault-rst-en"; // }; // thumbwheel-oe { // gpio-hog; // gpios = <10 0>; // output-high; // line-name = "~thumbwheel-oe"; // }; // engine-rpm-oe { // gpio-hog; // gpios = <11 0>; // output-high; // line-name = "~engine-rpm-oe"; // }; // }; // adau1979: adau1979@0x11 { // compatible = "adi,adau1977"; // reg = <0x11>; // }; // adau1962: adau1962@0x4 { // compatible = "adi,adau1962"; // reg = <0x4>; // reset-gpios = <&gpa 6 GPIO_ACTIVE_LOW>; // }; // }; &i2c1 { status = "okay"; }; &i2c2 { status = "okay"; }; // &i2s0 { // pinctrl-names = "default"; // pinctrl-0 = <&sru_dai0>; // status = "okay"; // }; &crc0 { status = "okay"; }; &crc1 { status = "okay"; }; &can0 { pinctrl-names = "default"; pinctrl-0 = <&can0_default>; phy-name = "tja1055"; phy-gpios = <&gpa 1 0>, /* en PA1 */ <&gpa 2 0x1>; /* stb PA2, GPIO_ACTIVE_LOW */ status = "okay"; }; &can1 { pinctrl-names = "default"; pinctrl-0 = <&can1_default>; phy-name = "tja1145"; phy-spibus = /bits/ 16 <0>; phy-spiclk = <1000000>; phy-spics = /bits/ 16 <38>; /* GPIO_PC6 */ status = "okay"; }; &emac0 { // snps,reset-gpio = <&gpa 5 0>; // snps,reset-active-low; // snps,reset-delays-us = <0 10000 10000>; phy-handle = <&lan83c185>; phy-mode = "mii"; pinctrl-names = "default"; pinctrl-0 = <ð0_default>; status = "okay"; mdio0 { compatible = "snps,dwmac-mdio"; #address-cells = <1>; #size-cells = <0>; lan83c185: ethernet-phy@0 { reg = <0>; // ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>; // ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>; // ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_8_B_NIB>; // ti,dp83867-rxctrl-strap-quirk; }; }; }; // &usb0_phy { // status = "okay"; // }; // &usb0 { // mode = <3>; /* OTG port */ // status = "okay"; // }; // &mmc0 { // wp-en-pin = <&ssw0 11 GPIO_ACTIVE_LOW>; /* SD_WP_EN */ // bus-width = <4>; // pinctrl-names = "default"; // pinctrl-0 = <&mmc0_default>; // status = "okay"; // }; &icc0 { status = "okay"; }; &video_decoder { pinctrl-names = "8bit", "16bit"; pinctrl-0 = <&ppi0_8b>; pinctrl-1 = <&ppi0_16b>; status = "disabled"; }; &video_encoder { pinctrl-names = "8bit", "16bit"; pinctrl-0 = <&ppi0_8b>; pinctrl-1 = <&ppi0_16b>; status = "disabled"; }; // &gp_counter { // pinctrl-names = "default"; // pinctrl-0 = <&cnt0_default>; // enable-pin = <&ssw1 10 GPIO_ACTIVE_LOW>; // status = "okay"; // rotary_abs_code = <ABS_WHEEL>; /* ABS_WHEEL */ // rotary_button_key = <KEY_ENTER>; /* KEY_ENTER */ // debounce = /bits/ 16 <10>; /* Debounce Prescale 0-17 */ // debounce_en = /bits/ 16 <1>; /* Debounce Enable */ // cnt_mode = /bits/ 16 <QUAD_ENC>; /* Counter Operating Mode: QUADENC */ // boundary_mode = /bits/ 16 <BD_COMP>;/* Boundary Register Mode: COMP */ // boundary_ranges = <(-256) 256>; /* Boundary upper/lower ranges */ // czm_zero_cnt_en = /bits/ 16 <1>; /* CZM Pin Zeroes Counter Enable */ // invert_czm = /bits/ 16 <1>; /* Default value of CZM Pin Polarity */ // invert_cud = /bits/ 16 <0>; /* Default value of CUD Pin Polarity */ // invert_cdg = /bits/ 16 <0>; /* Default value of CDG Pin Polarity */ // }; // &lp0 { // pinctrl-names = "default"; // pinctrl-0 = <&lp0_default>; // status = "okay"; // }; // &lp1 { // pinctrl-names = "default"; // pinctrl-0 = <&lp1_default>; // status = "okay"; // }; &sram_mmap { status = "okay"; }; &pinctrl0 { uart0_default: uart0_default_pins { pins { pinmux = <ADI_ADSP_PINMUX('F', 8, ADI_ADSP_PINFUNC_ALT0)>, <ADI_ADSP_PINMUX('F', 9, ADI_ADSP_PINFUNC_ALT0)>; }; }; uart0_hwflow: uart0_hwflow_pins { pins { pinmux = <ADI_ADSP_PINMUX('F', 8, ADI_ADSP_PINFUNC_ALT0)>, <ADI_ADSP_PINMUX('F', 9, ADI_ADSP_PINFUNC_ALT0)>, <ADI_ADSP_PINMUX('D', 5, ADI_ADSP_PINFUNC_ALT2)>, <ADI_ADSP_PINMUX('D', 6, ADI_ADSP_PINFUNC_ALT2)>; }; }; eth0_default: eth0_default_pins { pins { pinmux = <ADI_ADSP_PINMUX('B', 7, ADI_ADSP_PINFUNC_ALT0)>, <ADI_ADSP_PINMUX('B', 8, ADI_ADSP_PINFUNC_ALT0)>, <ADI_ADSP_PINMUX('B', 6, ADI_ADSP_PINFUNC_ALT0)>, <ADI_ADSP_PINMUX('B', 5, ADI_ADSP_PINFUNC_ALT0)>, <ADI_ADSP_PINMUX('A', 13, ADI_ADSP_PINFUNC_ALT0)>, <ADI_ADSP_PINMUX('A', 12, ADI_ADSP_PINFUNC_ALT0)>, <ADI_ADSP_PINMUX('A', 14, ADI_ADSP_PINFUNC_ALT0)>, <ADI_ADSP_PINMUX('A', 15, ADI_ADSP_PINFUNC_ALT0)>, <ADI_ADSP_PINMUX('B', 9, ADI_ADSP_PINFUNC_ALT0)>, <ADI_ADSP_PINMUX('B', 4, ADI_ADSP_PINFUNC_ALT0)>, <ADI_ADSP_PINMUX('B', 0, ADI_ADSP_PINFUNC_ALT0)>, <ADI_ADSP_PINMUX('B', 2, ADI_ADSP_PINFUNC_ALT0)>, <ADI_ADSP_PINMUX('A', 10, ADI_ADSP_PINFUNC_ALT0)>, <ADI_ADSP_PINMUX('A', 11, ADI_ADSP_PINFUNC_ALT0)>; }; }; spi0_default: spi0_default_pins { pins { pinmux = <ADI_ADSP_PINMUX('C', 1, ADI_ADSP_PINFUNC_ALT0)>, <ADI_ADSP_PINMUX('C', 2, ADI_ADSP_PINFUNC_ALT0)>, <ADI_ADSP_PINMUX('C', 3, ADI_ADSP_PINFUNC_ALT0)>; }; }; spi2_quad: spi2_quad_pins { pins { pinmux = <ADI_ADSP_PINMUX('B', 14, ADI_ADSP_PINFUNC_ALT0)>, <ADI_ADSP_PINMUX('B', 10, ADI_ADSP_PINFUNC_ALT0)>, <ADI_ADSP_PINMUX('B', 11, ADI_ADSP_PINFUNC_ALT0)>, <ADI_ADSP_PINMUX('B', 12, ADI_ADSP_PINFUNC_ALT0)>, <ADI_ADSP_PINMUX('B', 13, ADI_ADSP_PINFUNC_ALT0)>; }; }; can0_default: can0_default_pins { pins { pinmux = <ADI_ADSP_PINMUX('C', 12, ADI_ADSP_PINFUNC_ALT0)>, <ADI_ADSP_PINMUX('C', 13, ADI_ADSP_PINFUNC_ALT0)>; }; }; can1_default: can1_default_pins { pins { pinmux = <ADI_ADSP_PINMUX('C', 14, ADI_ADSP_PINFUNC_ALT0)>, <ADI_ADSP_PINMUX('C', 15, ADI_ADSP_PINFUNC_ALT0)>; }; }; // mmc0_default: mmc0_default_pins { // pins { // pinmux = <ADI_ADSP_PINMUX('E', 12, ADI_ADSP_PINFUNC_ALT0)>, // <ADI_ADSP_PINMUX('E', 13, ADI_ADSP_PINFUNC_ALT0)>, // <ADI_ADSP_PINMUX('E', 14, ADI_ADSP_PINFUNC_ALT0)>, // <ADI_ADSP_PINMUX('E', 15, ADI_ADSP_PINFUNC_ALT0)>, // <ADI_ADSP_PINMUX('F', 0, ADI_ADSP_PINFUNC_ALT0)>, // <ADI_ADSP_PINMUX('F', 1, ADI_ADSP_PINFUNC_ALT0)>, // <ADI_ADSP_PINMUX('F', 2, ADI_ADSP_PINFUNC_ALT0)>, // <ADI_ADSP_PINMUX('F', 3, ADI_ADSP_PINFUNC_ALT0)>, // <ADI_ADSP_PINMUX('F', 4, ADI_ADSP_PINFUNC_ALT0)>, // <ADI_ADSP_PINMUX('F', 7, ADI_ADSP_PINFUNC_ALT2)>, // <ADI_ADSP_PINMUX('C', 12, ADI_ADSP_PINFUNC_ALT1)>; // }; // }; ppi0_8b: ppi0_8b_pins { pins { pinmux = <ADI_ADSP_PINMUX('D', 10, ADI_ADSP_PINFUNC_ALT1)>, <ADI_ADSP_PINMUX('D', 11, ADI_ADSP_PINFUNC_ALT1)>, <ADI_ADSP_PINMUX('D', 12, ADI_ADSP_PINFUNC_ALT1)>, <ADI_ADSP_PINMUX('D', 13, ADI_ADSP_PINFUNC_ALT1)>, <ADI_ADSP_PINMUX('D', 14, ADI_ADSP_PINFUNC_ALT1)>, <ADI_ADSP_PINMUX('D', 15, ADI_ADSP_PINFUNC_ALT1)>, <ADI_ADSP_PINMUX('C', 5, ADI_ADSP_PINFUNC_ALT1)>, <ADI_ADSP_PINMUX('D', 9, ADI_ADSP_PINFUNC_ALT1)>, <ADI_ADSP_PINMUX('C', 11, ADI_ADSP_PINFUNC_ALT1)>, <ADI_ADSP_PINMUX('C', 14, ADI_ADSP_PINFUNC_ALT1)>, <ADI_ADSP_PINMUX('C', 15, ADI_ADSP_PINFUNC_ALT1)>, <ADI_ADSP_PINMUX('C', 6, ADI_ADSP_PINFUNC_ALT2)>; }; }; ppi0_16b: ppi0_16b_pins { pins { pinmux = <ADI_ADSP_PINMUX('D', 10, ADI_ADSP_PINFUNC_ALT1)>, <ADI_ADSP_PINMUX('D', 11, ADI_ADSP_PINFUNC_ALT1)>, <ADI_ADSP_PINMUX('D', 12, ADI_ADSP_PINFUNC_ALT1)>, <ADI_ADSP_PINMUX('D', 13, ADI_ADSP_PINFUNC_ALT1)>, <ADI_ADSP_PINMUX('D', 14, ADI_ADSP_PINFUNC_ALT1)>, <ADI_ADSP_PINMUX('D', 15, ADI_ADSP_PINFUNC_ALT1)>, <ADI_ADSP_PINMUX('C', 5, ADI_ADSP_PINFUNC_ALT1)>, <ADI_ADSP_PINMUX('D', 9, ADI_ADSP_PINFUNC_ALT1)>, <ADI_ADSP_PINMUX('C', 1, ADI_ADSP_PINFUNC_ALT1)>, <ADI_ADSP_PINMUX('C', 2, ADI_ADSP_PINFUNC_ALT1)>, <ADI_ADSP_PINMUX('C', 3, ADI_ADSP_PINFUNC_ALT1)>, <ADI_ADSP_PINMUX('C', 4, ADI_ADSP_PINFUNC_ALT1)>, <ADI_ADSP_PINMUX('E', 0, ADI_ADSP_PINFUNC_ALT1)>, <ADI_ADSP_PINMUX('C', 7, ADI_ADSP_PINFUNC_ALT1)>, <ADI_ADSP_PINMUX('C', 8, ADI_ADSP_PINFUNC_ALT1)>, <ADI_ADSP_PINMUX('E', 1, ADI_ADSP_PINFUNC_ALT1)>, <ADI_ADSP_PINMUX('C', 11, ADI_ADSP_PINFUNC_ALT1)>, <ADI_ADSP_PINMUX('C', 14, ADI_ADSP_PINFUNC_ALT1)>, <ADI_ADSP_PINMUX('C', 15, ADI_ADSP_PINFUNC_ALT1)>, <ADI_ADSP_PINMUX('C', 6, ADI_ADSP_PINFUNC_ALT2)>; }; }; cnt0_default: cnt0_default_pins { pinmux = <ADI_ADSP_PINMUX('D', 7, ADI_ADSP_PINFUNC_ALT1)>, <ADI_ADSP_PINMUX('E', 13, ADI_ADSP_PINFUNC_ALT2)>, <ADI_ADSP_PINMUX('D', 8, ADI_ADSP_PINFUNC_ALT1)>; }; // lp0_default: lp0_default_pins { // pinmux = <ADI_ADSP_PINMUX('E', 4, ADI_ADSP_PINFUNC_ALT0)>, // <ADI_ADSP_PINMUX('E', 5, ADI_ADSP_PINFUNC_ALT0)>, // <ADI_ADSP_PINMUX('E', 6, ADI_ADSP_PINFUNC_ALT0)>, // <ADI_ADSP_PINMUX('E', 7, ADI_ADSP_PINFUNC_ALT0)>, // <ADI_ADSP_PINMUX('E', 8, ADI_ADSP_PINFUNC_ALT0)>, // <ADI_ADSP_PINMUX('E', 9, ADI_ADSP_PINFUNC_ALT0)>, // <ADI_ADSP_PINMUX('E', 10, ADI_ADSP_PINFUNC_ALT0)>, // <ADI_ADSP_PINMUX('E', 11, ADI_ADSP_PINFUNC_ALT0)>, // <ADI_ADSP_PINMUX('E', 2, ADI_ADSP_PINFUNC_ALT0)>, // <ADI_ADSP_PINMUX('E', 3, ADI_ADSP_PINFUNC_ALT0)>; // }; // lp1_default: lp1_default_pins { // pinmux = <ADI_ADSP_PINMUX('D', 10, ADI_ADSP_PINFUNC_ALT0)>, // <ADI_ADSP_PINMUX('D', 11, ADI_ADSP_PINFUNC_ALT0)>, // <ADI_ADSP_PINMUX('D', 12, ADI_ADSP_PINFUNC_ALT0)>, // <ADI_ADSP_PINMUX('D', 13, ADI_ADSP_PINFUNC_ALT0)>, // <ADI_ADSP_PINMUX('D', 14, ADI_ADSP_PINFUNC_ALT0)>, // <ADI_ADSP_PINMUX('D', 15, ADI_ADSP_PINFUNC_ALT0)>, // <ADI_ADSP_PINMUX('A', 9, ADI_ADSP_PINFUNC_ALT1)>, // <ADI_ADSP_PINMUX('D', 9, ADI_ADSP_PINFUNC_ALT0)>, // <ADI_ADSP_PINMUX('B', 3, ADI_ADSP_PINFUNC_ALT2)>, // <ADI_ADSP_PINMUX('B', 1, ADI_ADSP_PINFUNC_ALT2)>; // }; }; &sru_ctrl_dai0 { status = "okay"; sru_dai0: sru_dai0_mux { route { sru-routing = <DAI0_LOW_F DAI0_PBEN02_I>, /* set DAI0_PIN02 to input */ <DAI0_PB02_O_ABCDE SPT0_ACLK_I>, /* route DAI0_PIN02 to SPT0_ACLK */ <DAI0_LOW_F DAI0_PBEN04_I>, /* set DAI0_PIN04 to input */ <DAI0_PB04_O_ABCDE SPT0_AFS_I>, /* route DAI0_PIN04 to SPT0_AFS */ <DAI0_HIGH_F DAI0_PBEN01_I>, /* set DAI0_PIN01 to output */ <SPT0_AD0_O_BD DAI0_PB01_I>, /* route SPT4_AD0 to DAI0_PIN01 */ <DAI0_LOW_F DAI0_PBEN12_I>, /* set DAI0_PIN12 to input */ <DAI0_PB12_O_ABCDE SPT0_BCLK_I>, /* route DAI0_PIN12 to SPT0_BCLK */ <DAI0_LOW_F DAI0_PBEN20_I>, /* set DAI0_PIN20 to input */ <DAI0_PB20_O_ABCDE SPT0_BFS_I>, /* route DAI0_PIN20 to SPT0_BFS */ <DAI0_LOW_F DAI0_PBEN06_I>, /* set DAI0_PIN06 to input */ <DAI0_PB06_O_ABCDE SPT0_BD0_I>; /* route DAI0_PIN06 to SPT0_BD0 */ }; }; }; &sru_ctrl_dai1 { status = "okay"; };
Cheers