* [Qemu-devel] [PATCH] hw/arm: virt uart fix
@ 2016-06-08 2:30 xiaoqiang zhao
2016-06-08 6:23 ` Jérôme Forissier
0 siblings, 1 reply; 3+ messages in thread
From: xiaoqiang zhao @ 2016-06-08 2:30 UTC (permalink / raw)
To: qemu-devel, peter.maydell, jerome.forissier; +Cc: qemu-discuss, pbonzini
commit f0d1d2c115dffc1fbaf954d0b449db05c5eb79b1
("hw/char: QOM'ify pl011 model") break qemu-system-arm virt machine
if option '-machine secure=on' is provided.
The function create_uart is called twice. So make CharDriverState pointer
a parameter to create_uart instead of hardcoded.
Signed-off-by: xiaoqiang zhao <zxq_yx_007@163.com>
---
hw/arm/virt.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index 8e46137..73113cf 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -525,7 +525,7 @@ static void create_gic(VirtBoardInfo *vbi, qemu_irq *pic, int type, bool secure)
}
static void create_uart(const VirtBoardInfo *vbi, qemu_irq *pic, int uart,
- MemoryRegion *mem)
+ MemoryRegion *mem, CharDriverState *chr)
{
char *nodename;
hwaddr base = vbi->memmap[uart].base;
@@ -536,7 +536,7 @@ static void create_uart(const VirtBoardInfo *vbi, qemu_irq *pic, int uart,
DeviceState *dev = qdev_create(NULL, "pl011");
SysBusDevice *s = SYS_BUS_DEVICE(dev);
- qdev_prop_set_chr(dev, "chardev", serial_hds[0]);
+ qdev_prop_set_chr(dev, "chardev", chr);
qdev_init_nofail(dev);
memory_region_add_subregion(mem, base,
sysbus_mmio_get_region(s, 0));
@@ -1259,11 +1259,11 @@ static void machvirt_init(MachineState *machine)
create_gic(vbi, pic, gic_version, vms->secure);
- create_uart(vbi, pic, VIRT_UART, sysmem);
+ create_uart(vbi, pic, VIRT_UART, sysmem, serial_hds[0]);
if (vms->secure) {
create_secure_ram(vbi, secure_sysmem);
- create_uart(vbi, pic, VIRT_SECURE_UART, secure_sysmem);
+ create_uart(vbi, pic, VIRT_SECURE_UART, secure_sysmem, serial_hds[1]);
}
create_rtc(vbi, pic);
--
2.1.4
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [Qemu-devel] [PATCH] hw/arm: virt uart fix
2016-06-08 2:30 [Qemu-devel] [PATCH] hw/arm: virt uart fix xiaoqiang zhao
@ 2016-06-08 6:23 ` Jérôme Forissier
2016-06-08 19:05 ` Peter Maydell
0 siblings, 1 reply; 3+ messages in thread
From: Jérôme Forissier @ 2016-06-08 6:23 UTC (permalink / raw)
To: xiaoqiang zhao, qemu-devel, peter.maydell; +Cc: qemu-discuss, pbonzini
On 06/08/2016 04:30 AM, xiaoqiang zhao wrote:
> commit f0d1d2c115dffc1fbaf954d0b449db05c5eb79b1
> ("hw/char: QOM'ify pl011 model") break qemu-system-arm virt machine
> if option '-machine secure=on' is provided.
>
> The function create_uart is called twice. So make CharDriverState pointer
> a parameter to create_uart instead of hardcoded.
>
> Signed-off-by: xiaoqiang zhao <zxq_yx_007@163.com>
> ---
> hw/arm/virt.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
FWIW,
Tested-by: Jerome Forissier <jerome.forissier@linaro.org>
Thanks!
>
> diff --git a/hw/arm/virt.c b/hw/arm/virt.c
> index 8e46137..73113cf 100644
> --- a/hw/arm/virt.c
> +++ b/hw/arm/virt.c
> @@ -525,7 +525,7 @@ static void create_gic(VirtBoardInfo *vbi, qemu_irq *pic, int type, bool secure)
> }
>
> static void create_uart(const VirtBoardInfo *vbi, qemu_irq *pic, int uart,
> - MemoryRegion *mem)
> + MemoryRegion *mem, CharDriverState *chr)
> {
> char *nodename;
> hwaddr base = vbi->memmap[uart].base;
> @@ -536,7 +536,7 @@ static void create_uart(const VirtBoardInfo *vbi, qemu_irq *pic, int uart,
> DeviceState *dev = qdev_create(NULL, "pl011");
> SysBusDevice *s = SYS_BUS_DEVICE(dev);
>
> - qdev_prop_set_chr(dev, "chardev", serial_hds[0]);
> + qdev_prop_set_chr(dev, "chardev", chr);
> qdev_init_nofail(dev);
> memory_region_add_subregion(mem, base,
> sysbus_mmio_get_region(s, 0));
> @@ -1259,11 +1259,11 @@ static void machvirt_init(MachineState *machine)
>
> create_gic(vbi, pic, gic_version, vms->secure);
>
> - create_uart(vbi, pic, VIRT_UART, sysmem);
> + create_uart(vbi, pic, VIRT_UART, sysmem, serial_hds[0]);
>
> if (vms->secure) {
> create_secure_ram(vbi, secure_sysmem);
> - create_uart(vbi, pic, VIRT_SECURE_UART, secure_sysmem);
> + create_uart(vbi, pic, VIRT_SECURE_UART, secure_sysmem, serial_hds[1]);
> }
>
> create_rtc(vbi, pic);
>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Qemu-devel] [PATCH] hw/arm: virt uart fix
2016-06-08 6:23 ` Jérôme Forissier
@ 2016-06-08 19:05 ` Peter Maydell
0 siblings, 0 replies; 3+ messages in thread
From: Peter Maydell @ 2016-06-08 19:05 UTC (permalink / raw)
To: Jérôme Forissier
Cc: xiaoqiang zhao, QEMU Developers, qemu-discuss, Paolo Bonzini
On 8 June 2016 at 07:23, Jérôme Forissier <jerome.forissier@linaro.org> wrote:
>
>
> On 06/08/2016 04:30 AM, xiaoqiang zhao wrote:
>> commit f0d1d2c115dffc1fbaf954d0b449db05c5eb79b1
>> ("hw/char: QOM'ify pl011 model") break qemu-system-arm virt machine
>> if option '-machine secure=on' is provided.
>>
>> The function create_uart is called twice. So make CharDriverState pointer
>> a parameter to create_uart instead of hardcoded.
>>
>> Signed-off-by: xiaoqiang zhao <zxq_yx_007@163.com>
>> ---
>> hw/arm/virt.c | 8 ++++----
>> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> FWIW,
>
> Tested-by: Jerome Forissier <jerome.forissier@linaro.org>
Applied to master, thanks.
-- PMM
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2016-06-08 19:05 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-06-08 2:30 [Qemu-devel] [PATCH] hw/arm: virt uart fix xiaoqiang zhao
2016-06-08 6:23 ` Jérôme Forissier
2016-06-08 19:05 ` Peter Maydell
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.