All of lore.kernel.org
 help / color / mirror / Atom feed
From: Graeme Gregory <graeme@nuviainc.com>
To: Shashi Mallela <shashi.mallela@linaro.org>
Cc: "Peter Maydell" <peter.maydell@linaro.org>,
	"Leif Lindholm" <leif@nuviainc.com>,
	qemu-devel@nongnu.org, qemu-arm@nongnu.org,
	"Radosław Biernacki" <rad@semihalf.com>
Subject: Re: [PATCH v5 2/2] hw/arm/sbsa-ref: add SBSA watchdog device
Date: Thu, 15 Oct 2020 15:10:44 +0100	[thread overview]
Message-ID: <20201015141044.loa6x4sv5552pe72@xora-monster> (raw)
In-Reply-To: <CAC15JE2hMrzpWWF-bS-fshoYx+BPehwxqJi-7uMUXSOj+Uh3GQ@mail.gmail.com>

On Wed, Oct 14, 2020 at 01:04:43PM -0400, Shashi Mallela wrote:
> This was added as a placeholder for the virt requirement suggested by Maxim
> earlier.Agreed that this fdt otherwise has no significance for sbsa-ref
> platform nor is being used by ACPI table created for wdt.
> 
> -Shashi
> 
> On Wed, 14 Oct 2020 at 05:31, Graeme Gregory <[1]graeme@nuviainc.com> wrote:
> 
>     On Tue, Oct 13, 2020 at 11:16:31AM -0400, Shashi Mallela wrote:
>     > Included the newly implemented SBSA generic watchdog device model into
>     > SBSA platform
>     >
>     > Signed-off-by: Shashi Mallela <[2]shashi.mallela@linaro.org>
>     > ---
>     >  hw/arm/sbsa-ref.c | 50 +++++++++++++++++++++++++++++++++++++++++++++++
>     >  1 file changed, 50 insertions(+)
>     >
>     > diff --git a/hw/arm/sbsa-ref.c b/hw/arm/sbsa-ref.c
>     > index 9c3a893bedfd..97ed41607119 100644
>     > --- a/hw/arm/sbsa-ref.c
>     > +++ b/hw/arm/sbsa-ref.c
>     > @@ -30,6 +30,7 @@
>     >  #include "exec/hwaddr.h"
>     >  #include "kvm_arm.h"
>     >  #include "hw/arm/boot.h"
>     > +#include "hw/arm/fdt.h"
>     >  #include "hw/block/flash.h"
>     >  #include "hw/boards.h"
>     >  #include "hw/ide/internal.h"
>     > @@ -40,6 +41,7 @@
>     >  #include "hw/qdev-properties.h"
>     >  #include "hw/usb.h"
>     >  #include "hw/char/pl011.h"
>     > +#include "hw/watchdog/wdt_sbsa_gwdt.h"
>     >  #include "net/net.h"
>     >  #include "qom/object.h"
>     > 
>     > @@ -64,6 +66,9 @@ enum {
>     >      SBSA_GIC_DIST,
>     >      SBSA_GIC_REDIST,
>     >      SBSA_SECURE_EC,
>     > +    SBSA_GWDT,
>     > +    SBSA_GWDT_REFRESH,
>     > +    SBSA_GWDT_CONTROL,
>     >      SBSA_SMMU,
>     >      SBSA_UART,
>     >      SBSA_RTC,
>     > @@ -104,6 +109,8 @@ static const MemMapEntry sbsa_ref_memmap[] = {
>     >      [SBSA_GIC_DIST] =           { 0x40060000, 0x00010000 },
>     >      [SBSA_GIC_REDIST] =         { 0x40080000, 0x04000000 },
>     >      [SBSA_SECURE_EC] =          { 0x50000000, 0x00001000 },
>     > +    [SBSA_GWDT_REFRESH] =       { 0x50010000, 0x00001000 },
>     > +    [SBSA_GWDT_CONTROL] =       { 0x50011000, 0x00001000 },
>     >      [SBSA_UART] =               { 0x60000000, 0x00001000 },
>     >      [SBSA_RTC] =                { 0x60010000, 0x00001000 },
>     >      [SBSA_GPIO] =               { 0x60020000, 0x00001000 },
>     > @@ -133,6 +140,8 @@ static const int sbsa_ref_irqmap[] = {
>     >      [SBSA_SECURE_UART_MM] = 9,
>     >      [SBSA_AHCI] = 10,
>     >      [SBSA_EHCI] = 11,
>     > +    [SBSA_SMMU] = 12, /* ... to 15 */
>     > +    [SBSA_GWDT] = 16,
>     >  };

I guess your patch was not based on master here? You should make sure
you are rebased to the latest version before sending.

>     > 
>     >  static uint64_t sbsa_ref_cpu_mp_affinity(SBSAMachineState *sms, int idx)
>     > @@ -141,6 +150,30 @@ static uint64_t sbsa_ref_cpu_mp_affinity
>     (SBSAMachineState *sms, int idx)
>     >      return arm_cpu_mp_affinity(idx, clustersz);
>     >  }
>     > 
>     > +static void create_wdt_fdt(SBSAMachineState *sms)
>     > +{
>     > +    char *nodename;
>     > +    const char compat[] = "arm,sbsa-gwdt";
>     > +
>     > +    hwaddr rbase = sbsa_ref_memmap[SBSA_GWDT_REFRESH].base;
>     > +    hwaddr cbase = sbsa_ref_memmap[SBSA_GWDT_CONTROL].base;
>     > +    int irq = sbsa_ref_irqmap[SBSA_GWDT];
>     > +
>     > +    nodename = g_strdup_printf("/watchdog@%" PRIx64, rbase);
>     > +    qemu_fdt_add_subnode(sms->fdt, nodename);
>     > +
>     > +    qemu_fdt_setprop(sms->fdt, nodename, "compatible",
>     > +                             compat, sizeof(compat));
>     > +    qemu_fdt_setprop_sized_cells(sms->fdt, nodename, "reg",
>     > +                                 2, rbase, 2, SBSA_GWDT_RMMIO_SIZE,
>     > +                                 2, cbase, 2, SBSA_GWDT_CMMIO_SIZE);
>     > +    qemu_fdt_setprop_cells(sms->fdt, nodename, "interrupts",
>     > +                                GIC_FDT_IRQ_TYPE_PPI, irq,
>     > +                                GIC_FDT_IRQ_FLAGS_LEVEL_HI);
>     > +    qemu_fdt_setprop_cell(sms->fdt, nodename, "timeout-sec", 30);
>     > +    g_free(nodename);
>     > +}
>     > +
> 
>     Is this actually used anywhere? I ask because SBSA-ref is not a FDT
>     booting machine and only uses FDT to transfer some dynamic info to
>     arm-tf/edk2 and is not a full description tree. Your ACPI patch in
>     edk2 certainly does not use this info.
> 

From your reply above I would propose this hunk and the call below are
removed. If its needed to virt thats a seperate discussion which I think
was already happening in another thread.

FOSS style is for inline replies not top posting FYI

Graeme

>     Graeme
> 
> 
>     >  /*
>     >   * Firmware on this machine only uses ACPI table to load OS, these
>     limited
>     >   * device tree nodes are just to let firmware know the info which varies
>     from
>     > @@ -219,6 +252,7 @@ static void create_fdt(SBSAMachineState *sms)
>     > 
>     >          g_free(nodename);
>     >      }
>     > +    create_wdt_fdt(sms);
>     >  }
>     > 
>     >  #define SBSA_FLASH_SECTOR_SIZE (256 * KiB)
>     > @@ -447,6 +481,20 @@ static void create_rtc(const SBSAMachineState *sms)
>     >      sysbus_create_simple("pl031", base, qdev_get_gpio_in(sms->gic,
>     irq));
>     >  }
>     > 
>     > +static void create_wdt(const SBSAMachineState *sms)
>     > +{
>     > +    hwaddr rbase = sbsa_ref_memmap[SBSA_GWDT_REFRESH].base;
>     > +    hwaddr cbase = sbsa_ref_memmap[SBSA_GWDT_CONTROL].base;
>     > +    DeviceState *dev = qdev_new(TYPE_WDT_SBSA_GWDT);
>     > +    SysBusDevice *s = SYS_BUS_DEVICE(dev);
>     > +    int irq = sbsa_ref_irqmap[SBSA_GWDT];
>     > +
>     > +    sysbus_realize_and_unref(s, &error_fatal);
>     > +    sysbus_mmio_map(s, 0, rbase);
>     > +    sysbus_mmio_map(s, 1, cbase);
>     > +    sysbus_connect_irq(s, 0, qdev_get_gpio_in(sms->gic, irq));
>     > +}
>     > +
>     >  static DeviceState *gpio_key_dev;
>     >  static void sbsa_ref_powerdown_req(Notifier *n, void *opaque)
>     >  {
>     > @@ -730,6 +778,8 @@ static void sbsa_ref_init(MachineState *machine)
>     > 
>     >      create_rtc(sms);
>     > 
>     > +    create_wdt(sms);
>     > +
>     >      create_gpio(sms);
>     > 
>     >      create_ahci(sms);
>     > --
>     > 2.18.4
>     >
>     >
> 
> 
> References:
> 
> [1] mailto:graeme@nuviainc.com
> [2] mailto:shashi.mallela@linaro.org


  reply	other threads:[~2020-10-15 14:12 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-13 15:16 [PATCH v5 0/2] Add watchdog support for SbsaQemu Shashi Mallela
2020-10-13 15:16 ` [PATCH v5 1/2] hw/watchdog: Implement SBSA watchdog device Shashi Mallela
2020-10-13 15:16 ` [PATCH v5 2/2] hw/arm/sbsa-ref: add " Shashi Mallela
2020-10-14  9:31   ` Graeme Gregory
2020-10-14 17:04     ` Shashi Mallela
2020-10-15 14:10       ` Graeme Gregory [this message]
2020-10-15 15:21         ` Maxim Uvarov
2020-10-16  8:37           ` Graeme Gregory

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20201015141044.loa6x4sv5552pe72@xora-monster \
    --to=graeme@nuviainc.com \
    --cc=leif@nuviainc.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=rad@semihalf.com \
    --cc=shashi.mallela@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.