diff options
author | Fea.Wang <fea.wang@sifive.com> | 2024-06-13 09:35:00 +0800 |
---|---|---|
committer | Edgar E. Iglesias <edgar.iglesias@amd.com> | 2024-06-18 14:52:00 +0200 |
commit | 8e25dddaf93bd9b2fa79e4b5229e7b3a97a86b7f (patch) | |
tree | acc8bad6aedc58fe898bcc2808a4d5a399ed0ff3 /hw | |
parent | e6b45b6bb9ce721119857507a66768b06e8836a2 (diff) | |
download | qemu-8e25dddaf93bd9b2fa79e4b5229e7b3a97a86b7f.zip qemu-8e25dddaf93bd9b2fa79e4b5229e7b3a97a86b7f.tar.gz qemu-8e25dddaf93bd9b2fa79e4b5229e7b3a97a86b7f.tar.bz2 |
hw/dma: Add a trace log for a description loading failure
Due to a description loading failure, adding a trace log makes observing
the DMA behavior easy.
Signed-off-by: Fea.Wang <fea.wang@sifive.com>
Reviewed-by: Edgar E. Iglesias <edgar.iglesias@amd.com>
Reviewed-by: Frank Chang <frank.chang@sifive.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@amd.com>
Diffstat (limited to 'hw')
-rw-r--r-- | hw/dma/trace-events | 3 | ||||
-rw-r--r-- | hw/dma/xilinx_axidma.c | 3 |
2 files changed, 6 insertions, 0 deletions
diff --git a/hw/dma/trace-events b/hw/dma/trace-events index 3c47df5..4c09790 100644 --- a/hw/dma/trace-events +++ b/hw/dma/trace-events @@ -44,3 +44,6 @@ pl330_debug_exec_stall(void) "stall of debug instruction not implemented" pl330_iomem_write(uint32_t offset, uint32_t value) "addr: 0x%08"PRIx32" data: 0x%08"PRIx32 pl330_iomem_write_clr(int i) "event interrupt lowered %d" pl330_iomem_read(uint32_t addr, uint32_t data) "addr: 0x%08"PRIx32" data: 0x%08"PRIx32 + +# xilinx_axidma.c +xilinx_axidma_loading_desc_fail(uint32_t res) "error:%u" diff --git a/hw/dma/xilinx_axidma.c b/hw/dma/xilinx_axidma.c index ad30799..c9cfc31 100644 --- a/hw/dma/xilinx_axidma.c +++ b/hw/dma/xilinx_axidma.c @@ -36,6 +36,7 @@ #include "sysemu/dma.h" #include "hw/stream.h" #include "qom/object.h" +#include "trace.h" #define D(x) @@ -201,6 +202,8 @@ static MemTxResult stream_desc_load(struct Stream *s, hwaddr addr) addr, MEMTXATTRS_UNSPECIFIED, d, sizeof *d); if (result != MEMTX_OK) { + trace_xilinx_axidma_loading_desc_fail(result); + if (result == MEMTX_DECODE_ERROR) { s->regs[R_DMASR] |= DMASR_DECERR; } else { |