[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [Bug 1833101] Re: vexpress-a9 (but not -a15) creates two pl
From: |
Peter Maydell |
Subject: |
[Qemu-devel] [Bug 1833101] Re: vexpress-a9 (but not -a15) creates two pl111 LCDs due to duplicate sysbus_create_simple("pl111", ...) calls |
Date: |
Mon, 17 Jun 2019 16:31:36 -0000 |
Our vexpress-a9 model instantiates two PL111s because the hardware has
two PL111s. One is on the daughterboard, at address 0x10020000, and the
other is on the motherboard, at address 0x40001F000.
The vexpress-a15 hardware has only one PL111, which is why you only see
one being created for that hardware. (Instead it has one PL111 and one
HDLCD controller, but QEMU has no model of the HDLCD controller at the
moment. We might add one one day.)
In an ideal world we would implement the video multiplexing that the
hardware does to allow the guest to select which of the two display
devices gets to send output (this is controlled by the SYS_CFG_MUXFPGA
system configuration register), at which point we'd be able to only show
a single screen window.
--
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1833101
Title:
vexpress-a9 (but not -a15) creates two pl111 LCDs due to duplicate
sysbus_create_simple("pl111", ...) calls
Status in QEMU:
New
Bug description:
Hi,
Just a small report that (12ec8bd is current master)
https://github.com/qemu/qemu/blob/12ec8bd/hw/arm/vexpress.c#L652:
...
vexpress_common_init() {
...
sysbus_create_simple("pl111", map[VE_CLCD], pic[14]);
...
...
and
https://github.com/qemu/qemu/blob/12ec8bd/hw/arm/vexpress.c#L304:
...
a9_daughterboard_init() {
...
sysbus_create_simple("pl111", 0x10020000, pic[44]);
...
...
result in two LCD panels when using vexpress-a9.
vexpress-a15 does not appear to be affected (my -a9 kernel does not
work with it, but I see only one pl111 created).
Understandably (but still annoyingly), -nodefaults has no effect.
This bug is most evident when using SDL (so I can use ",frame=off"),
which dumps two top-level windows onto the screen. GTK hides this
because, coincidentally, the pl111 that ends up being used is the one
that is selected (possibly the one created last?), relegating this to
an obscure glitch only noticeable if you scrutinize the menu.
This is a bugreport as opposed to a pull request as I have no idea
which call to remove - and complete ignorance of the potential
housekeeping and consideration that may be warranted first.
FWIW, a simple testcase can be made with the vmlinuz from
https://people.debian.org/~aurel32/qemu/armhf/ and
qemu-system-arm -M vexpress-a9 -kernel vmlinuz-3.2.0-4-vexpress
-nodefaults -sdl
Thanks!
To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1833101/+subscriptions
- [Qemu-devel] [Bug 1833101] [NEW] vexpress-a9 (but not -a15) creates two pl111 LCDs due to duplicate sysbus_create_simple("pl111", ...) calls, David Lindsay, 2019/06/17
- [Qemu-devel] [Bug 1833101] Re: vexpress-a9 (but not -a15) creates two pl111 LCDs due to duplicate sysbus_create_simple("pl111", ...) calls,
Peter Maydell <=
- [Qemu-devel] [Bug 1833101] Re: vexpress-a9 (but not -a15) creates two pl111 LCDs due to duplicate sysbus_create_simple("pl111", ...) calls, David Lindsay, 2019/06/18
- [Qemu-devel] [Bug 1833101] Re: vexpress-a9 (but not -a15) creates two pl111 LCDs due to duplicate sysbus_create_simple("pl111", ...) calls, Peter Maydell, 2019/06/18
- [Qemu-devel] [Bug 1833101] Re: vexpress-a9 (but not -a15) creates two pl111 LCDs due to duplicate sysbus_create_simple("pl111", ...) calls, David Lindsay, 2019/06/18