[prev in list] [next in list] [prev in thread] [next in thread] 

List:       qemu-block
Subject:    [Qemu-block] [PATCH v2 16/16] ahci: make ahci_mem_write traces more descriptive
From:       John Snow <jsnow () redhat ! com>
Date:       2018-05-31 22:28:35
Message-ID: 20180531222835.16558-17-jsnow () redhat ! com
[Download RAW message or body]

Signed-off-by: John Snow <jsnow@redhat.com>
---
 hw/ide/ahci.c       | 13 ++++++++++++-
 hw/ide/trace-events |  4 +++-
 2 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/hw/ide/ahci.c b/hw/ide/ahci.c
index 1309f80458..6cab853741 100644
--- a/hw/ide/ahci.c
+++ b/hw/ide/ahci.c
@@ -494,13 +494,24 @@ static void ahci_mem_write(void *opaque, hwaddr addr,
             /* FIXME report write? */
             break;
         default:
-            trace_ahci_mem_write_unknown(s, size, addr, val);
+            qemu_log_mask(LOG_UNIMP, "Attempted write to unimplemented register:"
+                          " AHCI host register %s, offset 0x%lx: 0x%"PRIu64,
+                          AHCIHostReg_lookup[regnum], addr, val);
+            trace_ahci_mem_write_host_unimpl(s, size,
+                                             AHCIHostReg_lookup[regnum], addr);
         }
+        trace_ahci_mem_write_host(s, size, AHCIHostReg_lookup[regnum],
+                                     addr, val);
     } else if ((addr >= AHCI_PORT_REGS_START_ADDR) &&
                (addr < (AHCI_PORT_REGS_START_ADDR +
                         (s->ports * AHCI_PORT_ADDR_OFFSET_LEN)))) {
         ahci_port_write(s, (addr - AHCI_PORT_REGS_START_ADDR) >> 7,
                         addr & AHCI_PORT_ADDR_OFFSET_MASK, val);
+    } else {
+        qemu_log_mask(LOG_UNIMP, "Attempted write to unimplemented register: "
+                      "AHCI global register at offset 0x%lx: 0x%"PRIu64,
+                      addr, val);
+        trace_ahci_mem_write_unimpl(s, size, addr, val);
     }
 }
 
diff --git a/hw/ide/trace-events b/hw/ide/trace-events
index 8149a54db8..e6bd95f52f 100644
--- a/hw/ide/trace-events
+++ b/hw/ide/trace-events
@@ -77,7 +77,9 @@ ahci_mem_read_32_host(void *s, const char *reg, uint64_t addr, \
uint32_t val) "ah  ahci_mem_read_32_host_default(void *s, const char *reg, uint64_t \
addr) "ahci(%p): unimplemented mem read [reg:%s] @ 0x%"PRIx64  ahci_mem_read(void *s, \
unsigned size, uint64_t addr, uint64_t val) "ahci(%p): read%u @ 0x%"PRIx64": \
0x%016"PRIx64  ahci_mem_write(void *s, unsigned size, uint64_t addr, uint64_t val) \
                "ahci(%p): write%u @ 0x%"PRIx64": 0x%016"PRIx64
-ahci_mem_write_unknown(void *s, unsigned size, uint64_t addr, uint64_t val) \
"ahci(%p): write%u to unknown register 0x%"PRIx64": 0x%016"PRIx64 \
+ahci_mem_write_host_unimpl(void *s, unsigned size, const char *reg, uint64_t addr) \
"ahci(%p) unimplemented write%u [reg:%s] @ 0x%"PRIx64 +ahci_mem_write_host(void *s, \
unsigned size, const char *reg, uint64_t addr, uint64_t val) "ahci(%p) write%u \
[reg:%s] @ 0x%"PRIx64": 0x%016"PRIx64 +ahci_mem_write_unimpl(void *s, unsigned size, \
uint64_t addr, uint64_t val) "ahci(%p): write%u to unknown register 0x%"PRIx64": \
0x%016"PRIx64  ahci_set_signature(void *s, int port, uint8_t nsector, uint8_t sector, \
uint8_t lcyl, uint8_t hcyl, uint32_t sig) "ahci(%p)[%d]: set signature sector:0x%02x \
nsector:0x%02x lcyl:0x%02x hcyl:0x%02x (cumulatively: 0x%08x)"  ahci_reset_port(void \
*s, int port) "ahci(%p)[%d]: reset port"  ahci_unmap_fis_address_null(void *s, int \
                port) "ahci(%p)[%d]: Attempt to unmap NULL FIS address"
-- 
2.14.3


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic