qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] riscv/virt: Add syscon reboot and poweroff DT nodes
@ 2019-11-11 13:38 Anup Patel
  2019-11-11 13:42 ` Anup Patel
  2019-11-11 19:14 ` Alistair Francis
  0 siblings, 2 replies; 5+ messages in thread
From: Anup Patel @ 2019-11-11 13:38 UTC (permalink / raw)
  To: Peter Maydell, Palmer Dabbelt, Alistair Francis, Sagar Karandikar
  Cc: qemu-riscv, Anup Patel, Anup Patel, qemu-devel, Atish Patra,
	Christoph Hellwig

The SiFive test device found on virt machine can be used by
generic syscon reboot and poweroff drivers available in Linux
kernel.

This patch updates FDT generation in virt machine so that
Linux kernel can probe and use generic syscon drivers.

Signed-off-by: Anup Patel <anup.patel@wdc.com>
---
 hw/riscv/virt.c | 28 ++++++++++++++++++++++++----
 1 file changed, 24 insertions(+), 4 deletions(-)

diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c
index cc8f311e6b..fdfa359713 100644
--- a/hw/riscv/virt.c
+++ b/hw/riscv/virt.c
@@ -182,11 +182,11 @@ static void create_fdt(RISCVVirtState *s, const struct MemmapEntry *memmap,
     uint64_t mem_size, const char *cmdline)
 {
     void *fdt;
-    int cpu;
+    int cpu, i;
     uint32_t *cells;
     char *nodename;
-    uint32_t plic_phandle, phandle = 1;
-    int i;
+    const char test_compat[] = "sifive,test0\0syscon";
+    uint32_t plic_phandle, test_phandle, phandle = 1;
     hwaddr flashsize = virt_memmap[VIRT_FLASH].size / 2;
     hwaddr flashbase = virt_memmap[VIRT_FLASH].base;
 
@@ -356,13 +356,33 @@ static void create_fdt(RISCVVirtState *s, const struct MemmapEntry *memmap,
     create_pcie_irq_map(fdt, nodename, plic_phandle);
     g_free(nodename);
 
+    test_phandle = phandle++;
     nodename = g_strdup_printf("/test@%lx",
         (long)memmap[VIRT_TEST].base);
     qemu_fdt_add_subnode(fdt, nodename);
-    qemu_fdt_setprop_string(fdt, nodename, "compatible", "sifive,test0");
+    qemu_fdt_setprop(fdt, nodename, "compatible",
+                     test_compat, sizeof(test_compat));
     qemu_fdt_setprop_cells(fdt, nodename, "reg",
         0x0, memmap[VIRT_TEST].base,
         0x0, memmap[VIRT_TEST].size);
+    qemu_fdt_setprop_cell(fdt, nodename, "phandle", test_phandle);
+    test_phandle = qemu_fdt_get_phandle(fdt, nodename);
+    g_free(nodename);
+
+    nodename = g_strdup_printf("/reboot");
+    qemu_fdt_add_subnode(fdt, nodename);
+    qemu_fdt_setprop_string(fdt, nodename, "compatible", "syscon-reboot");
+    qemu_fdt_setprop_cell(fdt, nodename, "regmap", test_phandle);
+    qemu_fdt_setprop_cell(fdt, nodename, "offset", 0x0);
+    qemu_fdt_setprop_cell(fdt, nodename, "value", FINISHER_RESET);
+    g_free(nodename);
+
+    nodename = g_strdup_printf("/poweroff");
+    qemu_fdt_add_subnode(fdt, nodename);
+    qemu_fdt_setprop_string(fdt, nodename, "compatible", "syscon-poweroff");
+    qemu_fdt_setprop_cell(fdt, nodename, "regmap", test_phandle);
+    qemu_fdt_setprop_cell(fdt, nodename, "offset", 0x0);
+    qemu_fdt_setprop_cell(fdt, nodename, "value", FINISHER_PASS);
     g_free(nodename);
 
     nodename = g_strdup_printf("/uart@%lx",
-- 
2.17.1



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* RE: [PATCH] riscv/virt: Add syscon reboot and poweroff DT nodes
  2019-11-11 13:38 [PATCH] riscv/virt: Add syscon reboot and poweroff DT nodes Anup Patel
@ 2019-11-11 13:42 ` Anup Patel
  2019-11-11 15:28   ` Bin Meng
  2019-11-11 19:14 ` Alistair Francis
  1 sibling, 1 reply; 5+ messages in thread
From: Anup Patel @ 2019-11-11 13:42 UTC (permalink / raw)
  To: Peter Maydell, Alistair Francis, Sagar Karandikar, Palmer Dabbelt
  Cc: qemu-devel, Atish Patra, qemu-riscv, Christoph Hellwig, Anup Patel

Correct Palmer's email address.

> -----Original Message-----
> From: Anup Patel
> Sent: Monday, November 11, 2019 7:08 PM
> To: Peter Maydell <peter.maydell@linaro.org>; Palmer Dabbelt
> <palmer@sifive.com>; Alistair Francis <Alistair.Francis@wdc.com>; Sagar
> Karandikar <sagark@eecs.berkeley.edu>
> Cc: Atish Patra <Atish.Patra@wdc.com>; Christoph Hellwig <hch@lst.de>;
> Anup Patel <anup@brainfault.org>; qemu-riscv@nongnu.org; qemu-
> devel@nongnu.org; Anup Patel <Anup.Patel@wdc.com>
> Subject: [PATCH] riscv/virt: Add syscon reboot and poweroff DT nodes
> 
> The SiFive test device found on virt machine can be used by generic syscon
> reboot and poweroff drivers available in Linux kernel.
> 
> This patch updates FDT generation in virt machine so that Linux kernel can
> probe and use generic syscon drivers.
> 
> Signed-off-by: Anup Patel <anup.patel@wdc.com>
> ---
>  hw/riscv/virt.c | 28 ++++++++++++++++++++++++----
>  1 file changed, 24 insertions(+), 4 deletions(-)
> 
> diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c index cc8f311e6b..fdfa359713
> 100644
> --- a/hw/riscv/virt.c
> +++ b/hw/riscv/virt.c
> @@ -182,11 +182,11 @@ static void create_fdt(RISCVVirtState *s, const
> struct MemmapEntry *memmap,
>      uint64_t mem_size, const char *cmdline)  {
>      void *fdt;
> -    int cpu;
> +    int cpu, i;
>      uint32_t *cells;
>      char *nodename;
> -    uint32_t plic_phandle, phandle = 1;
> -    int i;
> +    const char test_compat[] = "sifive,test0\0syscon";
> +    uint32_t plic_phandle, test_phandle, phandle = 1;
>      hwaddr flashsize = virt_memmap[VIRT_FLASH].size / 2;
>      hwaddr flashbase = virt_memmap[VIRT_FLASH].base;
> 
> @@ -356,13 +356,33 @@ static void create_fdt(RISCVVirtState *s, const
> struct MemmapEntry *memmap,
>      create_pcie_irq_map(fdt, nodename, plic_phandle);
>      g_free(nodename);
> 
> +    test_phandle = phandle++;
>      nodename = g_strdup_printf("/test@%lx",
>          (long)memmap[VIRT_TEST].base);
>      qemu_fdt_add_subnode(fdt, nodename);
> -    qemu_fdt_setprop_string(fdt, nodename, "compatible", "sifive,test0");
> +    qemu_fdt_setprop(fdt, nodename, "compatible",
> +                     test_compat, sizeof(test_compat));
>      qemu_fdt_setprop_cells(fdt, nodename, "reg",
>          0x0, memmap[VIRT_TEST].base,
>          0x0, memmap[VIRT_TEST].size);
> +    qemu_fdt_setprop_cell(fdt, nodename, "phandle", test_phandle);
> +    test_phandle = qemu_fdt_get_phandle(fdt, nodename);
> +    g_free(nodename);
> +
> +    nodename = g_strdup_printf("/reboot");
> +    qemu_fdt_add_subnode(fdt, nodename);
> +    qemu_fdt_setprop_string(fdt, nodename, "compatible", "syscon-
> reboot");
> +    qemu_fdt_setprop_cell(fdt, nodename, "regmap", test_phandle);
> +    qemu_fdt_setprop_cell(fdt, nodename, "offset", 0x0);
> +    qemu_fdt_setprop_cell(fdt, nodename, "value", FINISHER_RESET);
> +    g_free(nodename);
> +
> +    nodename = g_strdup_printf("/poweroff");
> +    qemu_fdt_add_subnode(fdt, nodename);
> +    qemu_fdt_setprop_string(fdt, nodename, "compatible", "syscon-
> poweroff");
> +    qemu_fdt_setprop_cell(fdt, nodename, "regmap", test_phandle);
> +    qemu_fdt_setprop_cell(fdt, nodename, "offset", 0x0);
> +    qemu_fdt_setprop_cell(fdt, nodename, "value", FINISHER_PASS);
>      g_free(nodename);
> 
>      nodename = g_strdup_printf("/uart@%lx",
> --
> 2.17.1



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] riscv/virt: Add syscon reboot and poweroff DT nodes
  2019-11-11 13:42 ` Anup Patel
@ 2019-11-11 15:28   ` Bin Meng
  2019-11-11 16:49     ` Anup Patel
  0 siblings, 1 reply; 5+ messages in thread
From: Bin Meng @ 2019-11-11 15:28 UTC (permalink / raw)
  To: Anup Patel
  Cc: Peter Maydell, qemu-riscv, Sagar Karandikar, Anup Patel,
	qemu-devel, Atish Patra, Alistair Francis, Palmer Dabbelt,
	Christoph Hellwig

On Mon, Nov 11, 2019 at 9:42 PM Anup Patel <Anup.Patel@wdc.com> wrote:
>
> Correct Palmer's email address.
>
> > -----Original Message-----
> > From: Anup Patel
> > Sent: Monday, November 11, 2019 7:08 PM
> > To: Peter Maydell <peter.maydell@linaro.org>; Palmer Dabbelt
> > <palmer@sifive.com>; Alistair Francis <Alistair.Francis@wdc.com>; Sagar
> > Karandikar <sagark@eecs.berkeley.edu>
> > Cc: Atish Patra <Atish.Patra@wdc.com>; Christoph Hellwig <hch@lst.de>;
> > Anup Patel <anup@brainfault.org>; qemu-riscv@nongnu.org; qemu-
> > devel@nongnu.org; Anup Patel <Anup.Patel@wdc.com>
> > Subject: [PATCH] riscv/virt: Add syscon reboot and poweroff DT nodes
> >
> > The SiFive test device found on virt machine can be used by generic syscon
> > reboot and poweroff drivers available in Linux kernel.
> >
> > This patch updates FDT generation in virt machine so that Linux kernel can
> > probe and use generic syscon drivers.
> >
> > Signed-off-by: Anup Patel <anup.patel@wdc.com>
> > ---
> >  hw/riscv/virt.c | 28 ++++++++++++++++++++++++----
> >  1 file changed, 24 insertions(+), 4 deletions(-)
> >
> > diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c index cc8f311e6b..fdfa359713
> > 100644
> > --- a/hw/riscv/virt.c
> > +++ b/hw/riscv/virt.c
> > @@ -182,11 +182,11 @@ static void create_fdt(RISCVVirtState *s, const
> > struct MemmapEntry *memmap,
> >      uint64_t mem_size, const char *cmdline)  {
> >      void *fdt;
> > -    int cpu;
> > +    int cpu, i;
> >      uint32_t *cells;
> >      char *nodename;
> > -    uint32_t plic_phandle, phandle = 1;
> > -    int i;
> > +    const char test_compat[] = "sifive,test0\0syscon";
> > +    uint32_t plic_phandle, test_phandle, phandle = 1;
> >      hwaddr flashsize = virt_memmap[VIRT_FLASH].size / 2;
> >      hwaddr flashbase = virt_memmap[VIRT_FLASH].base;
> >
> > @@ -356,13 +356,33 @@ static void create_fdt(RISCVVirtState *s, const
> > struct MemmapEntry *memmap,
> >      create_pcie_irq_map(fdt, nodename, plic_phandle);
> >      g_free(nodename);
> >
> > +    test_phandle = phandle++;
> >      nodename = g_strdup_printf("/test@%lx",
> >          (long)memmap[VIRT_TEST].base);
> >      qemu_fdt_add_subnode(fdt, nodename);
> > -    qemu_fdt_setprop_string(fdt, nodename, "compatible", "sifive,test0");
> > +    qemu_fdt_setprop(fdt, nodename, "compatible",
> > +                     test_compat, sizeof(test_compat));
> >      qemu_fdt_setprop_cells(fdt, nodename, "reg",
> >          0x0, memmap[VIRT_TEST].base,
> >          0x0, memmap[VIRT_TEST].size);
> > +    qemu_fdt_setprop_cell(fdt, nodename, "phandle", test_phandle);
> > +    test_phandle = qemu_fdt_get_phandle(fdt, nodename);

Is this necessary?

> > +    g_free(nodename);
> > +
> > +    nodename = g_strdup_printf("/reboot");
> > +    qemu_fdt_add_subnode(fdt, nodename);
> > +    qemu_fdt_setprop_string(fdt, nodename, "compatible", "syscon-
> > reboot");
> > +    qemu_fdt_setprop_cell(fdt, nodename, "regmap", test_phandle);
> > +    qemu_fdt_setprop_cell(fdt, nodename, "offset", 0x0);
> > +    qemu_fdt_setprop_cell(fdt, nodename, "value", FINISHER_RESET);
> > +    g_free(nodename);
> > +
> > +    nodename = g_strdup_printf("/poweroff");
> > +    qemu_fdt_add_subnode(fdt, nodename);
> > +    qemu_fdt_setprop_string(fdt, nodename, "compatible", "syscon-
> > poweroff");
> > +    qemu_fdt_setprop_cell(fdt, nodename, "regmap", test_phandle);
> > +    qemu_fdt_setprop_cell(fdt, nodename, "offset", 0x0);
> > +    qemu_fdt_setprop_cell(fdt, nodename, "value", FINISHER_PASS);
> >      g_free(nodename);
> >
> >      nodename = g_strdup_printf("/uart@%lx",
> > --

Regards,
Bin


^ permalink raw reply	[flat|nested] 5+ messages in thread

* RE: [PATCH] riscv/virt: Add syscon reboot and poweroff DT nodes
  2019-11-11 15:28   ` Bin Meng
@ 2019-11-11 16:49     ` Anup Patel
  0 siblings, 0 replies; 5+ messages in thread
From: Anup Patel @ 2019-11-11 16:49 UTC (permalink / raw)
  To: Bin Meng
  Cc: Peter Maydell, qemu-riscv, Sagar Karandikar, Anup Patel,
	qemu-devel, Atish Patra, Alistair Francis, Palmer Dabbelt,
	Christoph Hellwig



> -----Original Message-----
> From: Bin Meng <bmeng.cn@gmail.com>
> Sent: Monday, November 11, 2019 8:58 PM
> To: Anup Patel <Anup.Patel@wdc.com>
> Cc: Peter Maydell <peter.maydell@linaro.org>; Alistair Francis
> <Alistair.Francis@wdc.com>; Sagar Karandikar <sagark@eecs.berkeley.edu>;
> Palmer Dabbelt <palmer@dabbelt.com>; qemu-devel@nongnu.org; Atish
> Patra <Atish.Patra@wdc.com>; qemu-riscv@nongnu.org; Christoph Hellwig
> <hch@lst.de>; Anup Patel <anup@brainfault.org>
> Subject: Re: [PATCH] riscv/virt: Add syscon reboot and poweroff DT nodes
> 
> On Mon, Nov 11, 2019 at 9:42 PM Anup Patel <Anup.Patel@wdc.com> wrote:
> >
> > Correct Palmer's email address.
> >
> > > -----Original Message-----
> > > From: Anup Patel
> > > Sent: Monday, November 11, 2019 7:08 PM
> > > To: Peter Maydell <peter.maydell@linaro.org>; Palmer Dabbelt
> > > <palmer@sifive.com>; Alistair Francis <Alistair.Francis@wdc.com>;
> > > Sagar Karandikar <sagark@eecs.berkeley.edu>
> > > Cc: Atish Patra <Atish.Patra@wdc.com>; Christoph Hellwig
> > > <hch@lst.de>; Anup Patel <anup@brainfault.org>;
> > > qemu-riscv@nongnu.org; qemu- devel@nongnu.org; Anup Patel
> > > <Anup.Patel@wdc.com>
> > > Subject: [PATCH] riscv/virt: Add syscon reboot and poweroff DT nodes
> > >
> > > The SiFive test device found on virt machine can be used by generic
> > > syscon reboot and poweroff drivers available in Linux kernel.
> > >
> > > This patch updates FDT generation in virt machine so that Linux
> > > kernel can probe and use generic syscon drivers.
> > >
> > > Signed-off-by: Anup Patel <anup.patel@wdc.com>
> > > ---
> > >  hw/riscv/virt.c | 28 ++++++++++++++++++++++++----
> > >  1 file changed, 24 insertions(+), 4 deletions(-)
> > >
> > > diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c index
> > > cc8f311e6b..fdfa359713
> > > 100644
> > > --- a/hw/riscv/virt.c
> > > +++ b/hw/riscv/virt.c
> > > @@ -182,11 +182,11 @@ static void create_fdt(RISCVVirtState *s,
> > > const struct MemmapEntry *memmap,
> > >      uint64_t mem_size, const char *cmdline)  {
> > >      void *fdt;
> > > -    int cpu;
> > > +    int cpu, i;
> > >      uint32_t *cells;
> > >      char *nodename;
> > > -    uint32_t plic_phandle, phandle = 1;
> > > -    int i;
> > > +    const char test_compat[] = "sifive,test0\0syscon";
> > > +    uint32_t plic_phandle, test_phandle, phandle = 1;
> > >      hwaddr flashsize = virt_memmap[VIRT_FLASH].size / 2;
> > >      hwaddr flashbase = virt_memmap[VIRT_FLASH].base;
> > >
> > > @@ -356,13 +356,33 @@ static void create_fdt(RISCVVirtState *s,
> > > const struct MemmapEntry *memmap,
> > >      create_pcie_irq_map(fdt, nodename, plic_phandle);
> > >      g_free(nodename);
> > >
> > > +    test_phandle = phandle++;
> > >      nodename = g_strdup_printf("/test@%lx",
> > >          (long)memmap[VIRT_TEST].base);
> > >      qemu_fdt_add_subnode(fdt, nodename);
> > > -    qemu_fdt_setprop_string(fdt, nodename, "compatible",
> "sifive,test0");
> > > +    qemu_fdt_setprop(fdt, nodename, "compatible",
> > > +                     test_compat, sizeof(test_compat));
> > >      qemu_fdt_setprop_cells(fdt, nodename, "reg",
> > >          0x0, memmap[VIRT_TEST].base,
> > >          0x0, memmap[VIRT_TEST].size);
> > > +    qemu_fdt_setprop_cell(fdt, nodename, "phandle", test_phandle);
> > > +    test_phandle = qemu_fdt_get_phandle(fdt, nodename);
> 
> Is this necessary?

I was doubtful about this line myself but I tried to keep code
consistent with other DT nodes (such as PLIC).

Regards,
Anup

> 
> > > +    g_free(nodename);
> > > +
> > > +    nodename = g_strdup_printf("/reboot");
> > > +    qemu_fdt_add_subnode(fdt, nodename);
> > > +    qemu_fdt_setprop_string(fdt, nodename, "compatible", "syscon-
> > > reboot");
> > > +    qemu_fdt_setprop_cell(fdt, nodename, "regmap", test_phandle);
> > > +    qemu_fdt_setprop_cell(fdt, nodename, "offset", 0x0);
> > > +    qemu_fdt_setprop_cell(fdt, nodename, "value", FINISHER_RESET);
> > > +    g_free(nodename);
> > > +
> > > +    nodename = g_strdup_printf("/poweroff");
> > > +    qemu_fdt_add_subnode(fdt, nodename);
> > > +    qemu_fdt_setprop_string(fdt, nodename, "compatible", "syscon-
> > > poweroff");
> > > +    qemu_fdt_setprop_cell(fdt, nodename, "regmap", test_phandle);
> > > +    qemu_fdt_setprop_cell(fdt, nodename, "offset", 0x0);
> > > +    qemu_fdt_setprop_cell(fdt, nodename, "value", FINISHER_PASS);
> > >      g_free(nodename);
> > >
> > >      nodename = g_strdup_printf("/uart@%lx",
> > > --
> 
> Regards,
> Bin

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] riscv/virt: Add syscon reboot and poweroff DT nodes
  2019-11-11 13:38 [PATCH] riscv/virt: Add syscon reboot and poweroff DT nodes Anup Patel
  2019-11-11 13:42 ` Anup Patel
@ 2019-11-11 19:14 ` Alistair Francis
  1 sibling, 0 replies; 5+ messages in thread
From: Alistair Francis @ 2019-11-11 19:14 UTC (permalink / raw)
  To: Anup Patel
  Cc: Peter Maydell, qemu-riscv, Sagar Karandikar, Anup Patel,
	Palmer Dabbelt, qemu-devel, Atish Patra, Alistair Francis,
	Christoph Hellwig

On Mon, Nov 11, 2019 at 5:38 AM Anup Patel <Anup.Patel@wdc.com> wrote:
>
> The SiFive test device found on virt machine can be used by
> generic syscon reboot and poweroff drivers available in Linux
> kernel.
>
> This patch updates FDT generation in virt machine so that
> Linux kernel can probe and use generic syscon drivers.
>
> Signed-off-by: Anup Patel <anup.patel@wdc.com>

Overall this looks fine. Palmer currently has a patch on list changing
the sifive test string as well. It's probably best to rebase this on
that patch.

We probably also need to make sure this is accepted in the RISC-V
kernel tree first.

Alistair

> ---
>  hw/riscv/virt.c | 28 ++++++++++++++++++++++++----
>  1 file changed, 24 insertions(+), 4 deletions(-)
>
> diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c
> index cc8f311e6b..fdfa359713 100644
> --- a/hw/riscv/virt.c
> +++ b/hw/riscv/virt.c
> @@ -182,11 +182,11 @@ static void create_fdt(RISCVVirtState *s, const struct MemmapEntry *memmap,
>      uint64_t mem_size, const char *cmdline)
>  {
>      void *fdt;
> -    int cpu;
> +    int cpu, i;
>      uint32_t *cells;
>      char *nodename;
> -    uint32_t plic_phandle, phandle = 1;
> -    int i;
> +    const char test_compat[] = "sifive,test0\0syscon";
> +    uint32_t plic_phandle, test_phandle, phandle = 1;
>      hwaddr flashsize = virt_memmap[VIRT_FLASH].size / 2;
>      hwaddr flashbase = virt_memmap[VIRT_FLASH].base;
>
> @@ -356,13 +356,33 @@ static void create_fdt(RISCVVirtState *s, const struct MemmapEntry *memmap,
>      create_pcie_irq_map(fdt, nodename, plic_phandle);
>      g_free(nodename);
>
> +    test_phandle = phandle++;
>      nodename = g_strdup_printf("/test@%lx",
>          (long)memmap[VIRT_TEST].base);
>      qemu_fdt_add_subnode(fdt, nodename);
> -    qemu_fdt_setprop_string(fdt, nodename, "compatible", "sifive,test0");
> +    qemu_fdt_setprop(fdt, nodename, "compatible",
> +                     test_compat, sizeof(test_compat));
>      qemu_fdt_setprop_cells(fdt, nodename, "reg",
>          0x0, memmap[VIRT_TEST].base,
>          0x0, memmap[VIRT_TEST].size);
> +    qemu_fdt_setprop_cell(fdt, nodename, "phandle", test_phandle);
> +    test_phandle = qemu_fdt_get_phandle(fdt, nodename);
> +    g_free(nodename);
> +
> +    nodename = g_strdup_printf("/reboot");
> +    qemu_fdt_add_subnode(fdt, nodename);
> +    qemu_fdt_setprop_string(fdt, nodename, "compatible", "syscon-reboot");
> +    qemu_fdt_setprop_cell(fdt, nodename, "regmap", test_phandle);
> +    qemu_fdt_setprop_cell(fdt, nodename, "offset", 0x0);
> +    qemu_fdt_setprop_cell(fdt, nodename, "value", FINISHER_RESET);
> +    g_free(nodename);
> +
> +    nodename = g_strdup_printf("/poweroff");
> +    qemu_fdt_add_subnode(fdt, nodename);
> +    qemu_fdt_setprop_string(fdt, nodename, "compatible", "syscon-poweroff");
> +    qemu_fdt_setprop_cell(fdt, nodename, "regmap", test_phandle);
> +    qemu_fdt_setprop_cell(fdt, nodename, "offset", 0x0);
> +    qemu_fdt_setprop_cell(fdt, nodename, "value", FINISHER_PASS);
>      g_free(nodename);
>
>      nodename = g_strdup_printf("/uart@%lx",
> --
> 2.17.1
>
>


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2019-11-11 19:22 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-11 13:38 [PATCH] riscv/virt: Add syscon reboot and poweroff DT nodes Anup Patel
2019-11-11 13:42 ` Anup Patel
2019-11-11 15:28   ` Bin Meng
2019-11-11 16:49     ` Anup Patel
2019-11-11 19:14 ` Alistair Francis

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).