[PATCH 1/3] hw/sparc/leon3: Map the UART device unconditionally

Philippe Mathieu-Daudé posted 3 patches 5 years, 8 months ago
[PATCH 1/3] hw/sparc/leon3: Map the UART device unconditionally
Posted by Philippe Mathieu-Daudé 5 years, 8 months ago
The UART is present on the chipset regardless there is a
character device connected to it. Map it unconditionally.

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 hw/sparc/leon3.c | 18 ++++++++----------
 1 file changed, 8 insertions(+), 10 deletions(-)

diff --git a/hw/sparc/leon3.c b/hw/sparc/leon3.c
index 8f024dab7b..cc55117dec 100644
--- a/hw/sparc/leon3.c
+++ b/hw/sparc/leon3.c
@@ -339,16 +339,14 @@ static void leon3_generic_hw_init(MachineState *machine)
                             0, LEON3_TIMER_IRQ, GRLIB_APBIO_AREA);
 
     /* Allocate uart */
-    if (serial_hd(0)) {
-        dev = qdev_create(NULL, TYPE_GRLIB_APB_UART);
-        qdev_prop_set_chr(dev, "chrdev", serial_hd(0));
-        qdev_init_nofail(dev);
-        sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, LEON3_UART_OFFSET);
-        sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, cpu_irqs[LEON3_UART_IRQ]);
-        grlib_apb_pnp_add_entry(apb_pnp, LEON3_UART_OFFSET, 0xFFF,
-                                GRLIB_VENDOR_GAISLER, GRLIB_APBUART_DEV, 1,
-                                LEON3_UART_IRQ, GRLIB_APBIO_AREA);
-    }
+    dev = qdev_create(NULL, TYPE_GRLIB_APB_UART);
+    qdev_prop_set_chr(dev, "chrdev", serial_hd(0));
+    qdev_init_nofail(dev);
+    sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, LEON3_UART_OFFSET);
+    sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, cpu_irqs[LEON3_UART_IRQ]);
+    grlib_apb_pnp_add_entry(apb_pnp, LEON3_UART_OFFSET, 0xFFF,
+                            GRLIB_VENDOR_GAISLER, GRLIB_APBUART_DEV, 1,
+                            LEON3_UART_IRQ, GRLIB_APBIO_AREA);
 }
 
 static void leon3_generic_machine_init(MachineClass *mc)
-- 
2.21.3


Re: [PATCH 1/3] hw/sparc/leon3: Map the UART device unconditionally
Posted by Fred Konrad 5 years, 8 months ago

Le 6/8/20 à 7:21 PM, Philippe Mathieu-Daudé a écrit :
> The UART is present on the chipset regardless there is a
> character device connected to it. Map it unconditionally.
> 
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
>   hw/sparc/leon3.c | 18 ++++++++----------
>   1 file changed, 8 insertions(+), 10 deletions(-)
> 
> diff --git a/hw/sparc/leon3.c b/hw/sparc/leon3.c
> index 8f024dab7b..cc55117dec 100644
> --- a/hw/sparc/leon3.c
> +++ b/hw/sparc/leon3.c
> @@ -339,16 +339,14 @@ static void leon3_generic_hw_init(MachineState *machine)
>                               0, LEON3_TIMER_IRQ, GRLIB_APBIO_AREA);
>   
>       /* Allocate uart */
> -    if (serial_hd(0)) {
> -        dev = qdev_create(NULL, TYPE_GRLIB_APB_UART);
> -        qdev_prop_set_chr(dev, "chrdev", serial_hd(0));
> -        qdev_init_nofail(dev);
> -        sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, LEON3_UART_OFFSET);
> -        sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, cpu_irqs[LEON3_UART_IRQ]);
> -        grlib_apb_pnp_add_entry(apb_pnp, LEON3_UART_OFFSET, 0xFFF,
> -                                GRLIB_VENDOR_GAISLER, GRLIB_APBUART_DEV, 1,
> -                                LEON3_UART_IRQ, GRLIB_APBIO_AREA);
> -    }
> +    dev = qdev_create(NULL, TYPE_GRLIB_APB_UART);
> +    qdev_prop_set_chr(dev, "chrdev", serial_hd(0));
> +    qdev_init_nofail(dev);
> +    sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, LEON3_UART_OFFSET);
> +    sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, cpu_irqs[LEON3_UART_IRQ]);
> +    grlib_apb_pnp_add_entry(apb_pnp, LEON3_UART_OFFSET, 0xFFF,
> +                            GRLIB_VENDOR_GAISLER, GRLIB_APBUART_DEV, 1,
> +                            LEON3_UART_IRQ, GRLIB_APBIO_AREA);
>   }
>   
>   static void leon3_generic_machine_init(MachineClass *mc)
> 

Reviewed-by: KONRAD Frederic <frederic.konrad@adacore.com>

Thanks!

Re: [PATCH 1/3] hw/sparc/leon3: Map the UART device unconditionally
Posted by Artyom Tarasenko 5 years, 8 months ago
On Mon, Jun 8, 2020 at 7:28 PM Fred Konrad <konrad@adacore.com> wrote:
>
>
>
> Le 6/8/20 à 7:21 PM, Philippe Mathieu-Daudé a écrit :
> > The UART is present on the chipset regardless there is a
> > character device connected to it. Map it unconditionally.
> >
> > Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> > ---
> >   hw/sparc/leon3.c | 18 ++++++++----------
> >   1 file changed, 8 insertions(+), 10 deletions(-)
> >
> > diff --git a/hw/sparc/leon3.c b/hw/sparc/leon3.c
> > index 8f024dab7b..cc55117dec 100644
> > --- a/hw/sparc/leon3.c
> > +++ b/hw/sparc/leon3.c
> > @@ -339,16 +339,14 @@ static void leon3_generic_hw_init(MachineState *machine)
> >                               0, LEON3_TIMER_IRQ, GRLIB_APBIO_AREA);
> >
> >       /* Allocate uart */
> > -    if (serial_hd(0)) {
> > -        dev = qdev_create(NULL, TYPE_GRLIB_APB_UART);
> > -        qdev_prop_set_chr(dev, "chrdev", serial_hd(0));
> > -        qdev_init_nofail(dev);
> > -        sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, LEON3_UART_OFFSET);
> > -        sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, cpu_irqs[LEON3_UART_IRQ]);
> > -        grlib_apb_pnp_add_entry(apb_pnp, LEON3_UART_OFFSET, 0xFFF,
> > -                                GRLIB_VENDOR_GAISLER, GRLIB_APBUART_DEV, 1,
> > -                                LEON3_UART_IRQ, GRLIB_APBIO_AREA);
> > -    }
> > +    dev = qdev_create(NULL, TYPE_GRLIB_APB_UART);
> > +    qdev_prop_set_chr(dev, "chrdev", serial_hd(0));
> > +    qdev_init_nofail(dev);
> > +    sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, LEON3_UART_OFFSET);
> > +    sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, cpu_irqs[LEON3_UART_IRQ]);
> > +    grlib_apb_pnp_add_entry(apb_pnp, LEON3_UART_OFFSET, 0xFFF,
> > +                            GRLIB_VENDOR_GAISLER, GRLIB_APBUART_DEV, 1,
> > +                            LEON3_UART_IRQ, GRLIB_APBIO_AREA);
> >   }
> >
> >   static void leon3_generic_machine_init(MachineClass *mc)
> >
>
> Reviewed-by: KONRAD Frederic <frederic.konrad@adacore.com>

Acked-by: Artyom Tarasenko <atar4qemu@gmail.com>




--
Regards,
Artyom Tarasenko

SPARC and PPC PReP under qemu blog: http://tyom.blogspot.com/search/label/qemu