qemu-devel
[Top][All Lists]
Advanced

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

Re: [PATCH 1/2] !fixup "hw/misc: Add limited support for AVR power devic


From: Philippe Mathieu-Daudé
Subject: Re: [PATCH 1/2] !fixup "hw/misc: Add limited support for AVR power device"
Date: Fri, 31 Jan 2020 13:39:26 +0100

On Fri, Jan 31, 2020 at 12:27 PM Alex Bennée <address@hidden> wrote:
> Philippe Mathieu-Daudé <address@hidden> writes:
>
> > - convert DB_PRINT() to trace-events
> > - fix style/indentation
> >
> > Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
> > ---
> >  hw/misc/avr_power.c  | 17 +++++++++--------
> >  hw/misc/trace-events |  4 ++++
> >  2 files changed, 13 insertions(+), 8 deletions(-)
> >
> > diff --git a/hw/misc/avr_power.c b/hw/misc/avr_power.c
> > index 598bc7279c..65ff7c4405 100644
> > --- a/hw/misc/avr_power.c
> > +++ b/hw/misc/avr_power.c
> > @@ -27,9 +27,7 @@
> >  #include "qemu/log.h"
> >  #include "hw/qdev-properties.h"
> >  #include "hw/irq.h"
> > -
> > -#define DB_PRINT(fmt, args...) /* Nothing */
> > -/*#define DB_PRINT(fmt, args...) printf("%s: " fmt "\n", __func__, ## 
> > args)*/
> > +#include "trace.h"
> >
> >  static void avr_mask_reset(DeviceState *dev)
> >  {
> > @@ -48,19 +46,20 @@ static uint64_t avr_mask_read(void *opaque, hwaddr 
> > offset, unsigned size)
> >      assert(offset == 0);
> >      AVRMaskState *s = opaque;
> >
> > +    trace_avr_power_read(s->val);
> > +
> >      return (uint64_t)s->val;
> >  }
> >
> >  static void avr_mask_write(void *opaque, hwaddr offset,
> > -                              uint64_t val64, unsigned size)
> > +                           uint64_t val64, unsigned size)
> >  {
> >      assert(size == 1);
> >      assert(offset == 0);
> >      AVRMaskState *s = opaque;
> >      uint8_t val8 = val64;
> >
> > -    DB_PRINT("write %d to offset %d", val8, (uint8_t)offset);
> > -
> > +    trace_avr_power_write(val8);
>
> You've dropped offset in this trace point which is probably worth
> keeping so you track where is being written to. Same with the read.

I dropped it because it is always 0x00, the register is 8bit wide. See
below, memory_region_init_io(...,1).
I thought about adding a "name" property so each instance can display
the device it belongs to, but this was too invasive, so I decided to
keep this change for later.

> >      s->val = val8;
> >      for (int i = 0; i < 8; i++) {
> >          qemu_set_irq(s->irq[i], (val8 & (1 << i)) != 0);
> > @@ -71,7 +70,9 @@ static const MemoryRegionOps avr_mask_ops = {
> >      .read = avr_mask_read,
> >      .write = avr_mask_write,
> >      .endianness = DEVICE_NATIVE_ENDIAN,
> > -    .impl = {.max_access_size = 1}
> > +    .impl = {
> > +        .max_access_size = 1,
> > +    },
> >  };
> >
> >  static void avr_mask_init(Object *dev)
> > @@ -80,7 +81,7 @@ static void avr_mask_init(Object *dev)
> >      SysBusDevice *busdev = SYS_BUS_DEVICE(dev);
> >
> >      memory_region_init_io(&s->iomem, dev, &avr_mask_ops, s, TYPE_AVR_MASK,
> > -            0x01);
> > +                          0x01);

^ Region has only 1 address: 0x00.

> >      sysbus_init_mmio(busdev, &s->iomem);
> >
> >      for (int i = 0; i < 8; i++) {
> > diff --git a/hw/misc/trace-events b/hw/misc/trace-events
> > index 7f0f5dff3a..f716881bb1 100644
> > --- a/hw/misc/trace-events
> > +++ b/hw/misc/trace-events
> > @@ -179,3 +179,7 @@ via1_rtc_cmd_pram_read(int addr, int value) "addr=%u 
> > value=0x%02x"
> >  via1_rtc_cmd_pram_write(int addr, int value) "addr=%u value=0x%02x"
> >  via1_rtc_cmd_pram_sect_read(int sector, int offset, int addr, int value) 
> > "sector=%u offset=%u addr=%d value=0x%02x"
> >  via1_rtc_cmd_pram_sect_write(int sector, int offset, int addr, int value) 
> > "sector=%u offset=%u addr=%d value=0x%02x"
> > +
> > +# avr_power.c
> > +avr_power_read(uint8_t value) "power_reduc read value:%u"
> > +avr_power_write(uint8_t value) "power_reduc write value:%u"
>
>
> --
> Alex Bennée
>




reply via email to

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