qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2 07/12] mos6522: add register names to register read/write


From: Philippe Mathieu-Daudé
Subject: Re: [PATCH v2 07/12] mos6522: add register names to register read/write trace events
Date: Sat, 5 Mar 2022 15:32:19 +0100
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0) Gecko/20100101 Thunderbird/91.6.1

On 5/3/22 15:17, Mark Cave-Ayland wrote:
On 24/02/2022 14:04, Philippe Mathieu-Daudé wrote:

On 24/2/22 12:59, Mark Cave-Ayland wrote:
This helps to follow how the guest is programming the mos6522 when debugging.

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
---
  hw/misc/mos6522.c    | 10 ++++++++--
  hw/misc/trace-events |  4 ++--
  2 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/hw/misc/mos6522.c b/hw/misc/mos6522.c
index 093cc83dcf..aaae195d63 100644
--- a/hw/misc/mos6522.c
+++ b/hw/misc/mos6522.c
@@ -36,6 +36,12 @@
  #include "qemu/module.h"
  #include "trace.h"

I'd feel safer adding:

   #define MOS6522_IOSIZE 0x10

+static const char *mos6522_reg_names[16] = {

Then here:

    ... mos6522_reg_names[MOS6522_IOSIZE] ...

+    "ORB", "ORA", "DDRB", "DDRA", "T1CL", "T1CH", "T1LL", "T1LH",
+    "T2CL", "T2CH", "SR", "ACR", "PCR", "IFR", "IER", "ANH"
+};
+
  /* XXX: implement all timer modes */
  static void mos6522_timer1_update(MOS6522State *s, MOS6522Timer *ti,
@@ -310,7 +316,7 @@ uint64_t mos6522_read(void *opaque, hwaddr addr, unsigned size)
      }
      if (addr != VIA_REG_IFR || val != 0) {
-        trace_mos6522_read(addr, val);
+        trace_mos6522_read(addr, mos6522_reg_names[addr], val);
      }

And finally:

-- >8 --
@@ -478,7 +478,8 @@ static void mos6522_init(Object *obj)
      MOS6522State *s = MOS6522(obj);
      int i;

-    memory_region_init_io(&s->mem, obj, &mos6522_ops, s, "mos6522", 0x10);
+    memory_region_init_io(&s->mem, obj, &mos6522_ops, s, "mos6522",
+                          MOS6522_IOSIZE);
      sysbus_init_mmio(sbd, &s->mem);
      sysbus_init_irq(sbd, &s->irq);

---

Regardless:

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

I've done this in v3 but using MOS6522_NUM_REGS rather than MOS6522_IOSIZE since IO size != number of registers at a higher level (e.g. where the 6522 registers are mapped in CUDA/mac_via with a stride).

OK, thanks. R-b stands for v3.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]