|
15 | 15 | #include <ios> |
16 | 16 | #include <stdexcept> |
17 | 17 |
|
| 18 | +#include "udmaio/FrameFormat.hpp" |
| 19 | + |
| 20 | +namespace axi_dma { |
| 21 | + |
| 22 | +std::ostream& operator<<(std::ostream& os, const s2mm_dmasr_t& stat) { |
| 23 | + auto fmt = [](std::string name, bool val) { return (val ? "+" : "-") + name; }; |
| 24 | + os << fmt("halted", stat.halted) << " "; |
| 25 | + os << fmt("idle", stat.idle) << " "; |
| 26 | + os << fmt("sg_incld", stat.sg_incld) << " "; |
| 27 | + os << fmt("dma_int_err", stat.dma_int_err) << " "; |
| 28 | + os << fmt("dma_slv_err", stat.dma_slv_err) << " "; |
| 29 | + os << fmt("dma_dec_err", stat.dma_dec_err) << " "; |
| 30 | + os << fmt("sg_int_err", stat.sg_int_err) << " "; |
| 31 | + os << fmt("sg_slv_err", stat.sg_slv_err) << " "; |
| 32 | + os << fmt("sg_dec_err", stat.sg_dec_err) << " "; |
| 33 | + os << fmt("ioc_irq", stat.ioc_irq) << " "; |
| 34 | + os << fmt("dly_irq", stat.dly_irq) << " "; |
| 35 | + os << fmt("err_irq", stat.err_irq); |
| 36 | + return os; |
| 37 | +} |
| 38 | + |
| 39 | +} // namespace axi_dma |
| 40 | + |
18 | 41 | namespace udmaio { |
19 | 42 |
|
20 | 43 | void UioAxiDmaIf::start(uintptr_t start_desc) { |
@@ -123,4 +146,7 @@ bool UioAxiDmaIf::check_for_errors() { |
123 | 146 | return has_errors; |
124 | 147 | } |
125 | 148 |
|
| 149 | +void UioAxiDmaIf::dump_status() { |
| 150 | + BOOST_LOG_SEV(_lg, bls::info) << s2mm_dmasr.rd(); |
| 151 | +} |
126 | 152 | } // namespace udmaio |
0 commit comments