From: "Philippe Mathieu-Daudé" <f4bug@amsat.org>
To: qemu-devel@nongnu.org
Cc: "Michael Lorenz" <macallan@NetBSD.org>,
1892540@bugs.launchpad.net, "Andreas Gustafsson" <gson@gson.org>,
"Mark Cave-Ayland" <mark.cave-ayland@ilande.co.uk>,
"Philippe Mathieu-Daudé" <f4bug@amsat.org>,
"Laurent Vivier" <laurent@vivier.eu>,
"Gerd Hoffmann" <kraxel@redhat.com>
Subject: [RFC PATCH] hw/display/tcx: Allow 64-bit accesses to framebuffer stippler and blitter
Date: Sat, 22 Aug 2020 16:15:45 +0200 [thread overview]
Message-ID: <20200822141545.1314296-1-f4bug@amsat.org> (raw)
The S24/TCX datasheet is listed as "Unable to locate" on [1].
However the NetBSD revision 1.32 of the driver introduced
64-bit accesses to the stippler and blitter [2]. It is safe
to assume these memory regions are 64-bit accessible.
QEMU implementation is 32-bit, so fill the 'impl' fields.
[1] http://web.archive.org/web/20111209011516/http://wikis.sun.com/display/FOSSdocs/Home
[2] http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/dev/sbus/tcx.c.diff?r1=1.31&r2=1.32
Reported-by: Andreas Gustafsson <gson@gson.org>
Buglink: https://bugs.launchpad.net/bugs/1892540
Fixes: 55d7bfe2293 ("tcx: Implement hardware acceleration")
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
hw/display/tcx.c | 18 +++++++++++++++---
1 file changed, 15 insertions(+), 3 deletions(-)
diff --git a/hw/display/tcx.c b/hw/display/tcx.c
index 1fb45b1aab8..96c6898b149 100644
--- a/hw/display/tcx.c
+++ b/hw/display/tcx.c
@@ -548,20 +548,28 @@ static const MemoryRegionOps tcx_stip_ops = {
.read = tcx_stip_readl,
.write = tcx_stip_writel,
.endianness = DEVICE_NATIVE_ENDIAN,
- .valid = {
+ .impl = {
.min_access_size = 4,
.max_access_size = 4,
},
+ .valid = {
+ .min_access_size = 4,
+ .max_access_size = 8,
+ },
};
static const MemoryRegionOps tcx_rstip_ops = {
.read = tcx_stip_readl,
.write = tcx_rstip_writel,
.endianness = DEVICE_NATIVE_ENDIAN,
- .valid = {
+ .impl = {
.min_access_size = 4,
.max_access_size = 4,
},
+ .valid = {
+ .min_access_size = 4,
+ .max_access_size = 8,
+ },
};
static uint64_t tcx_blit_readl(void *opaque, hwaddr addr,
@@ -650,10 +658,14 @@ static const MemoryRegionOps tcx_rblit_ops = {
.read = tcx_blit_readl,
.write = tcx_rblit_writel,
.endianness = DEVICE_NATIVE_ENDIAN,
- .valid = {
+ .impl = {
.min_access_size = 4,
.max_access_size = 4,
},
+ .valid = {
+ .min_access_size = 4,
+ .max_access_size = 8,
+ },
};
static void tcx_invalidate_cursor_position(TCXState *s)
--
2.26.2
WARNING: multiple messages have this Message-ID (diff)
From: "Philippe Mathieu-Daudé" <1892540@bugs.launchpad.net>
To: qemu-devel@nongnu.org
Subject: [Bug 1892540] [RFC PATCH] hw/display/tcx: Allow 64-bit accesses to framebuffer stippler and blitter
Date: Sat, 22 Aug 2020 14:15:45 -0000 [thread overview]
Message-ID: <20200822141545.1314296-1-f4bug@amsat.org> (raw)
Message-ID: <20200822141545.jkyi6gZxHuM_9zS6brCkOSlJS9R3n85EPCB7AScJKPM@z> (raw)
In-Reply-To: 159803735569.2614.10182276398047269277.malonedeb@chaenomeles.canonical.com
The S24/TCX datasheet is listed as "Unable to locate" on [1].
However the NetBSD revision 1.32 of the driver introduced
64-bit accesses to the stippler and blitter [2]. It is safe
to assume these memory regions are 64-bit accessible.
QEMU implementation is 32-bit, so fill the 'impl' fields.
[1] http://web.archive.org/web/20111209011516/http://wikis.sun.com/display/FOSSdocs/Home
[2] http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/dev/sbus/tcx.c.diff?r1=1.31&r2=1.32
Reported-by: Andreas Gustafsson <gson@gson.org>
Buglink: https://bugs.launchpad.net/bugs/1892540
Fixes: 55d7bfe2293 ("tcx: Implement hardware acceleration")
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
hw/display/tcx.c | 18 +++++++++++++++---
1 file changed, 15 insertions(+), 3 deletions(-)
diff --git a/hw/display/tcx.c b/hw/display/tcx.c
index 1fb45b1aab8..96c6898b149 100644
--- a/hw/display/tcx.c
+++ b/hw/display/tcx.c
@@ -548,20 +548,28 @@ static const MemoryRegionOps tcx_stip_ops = {
.read = tcx_stip_readl,
.write = tcx_stip_writel,
.endianness = DEVICE_NATIVE_ENDIAN,
- .valid = {
+ .impl = {
.min_access_size = 4,
.max_access_size = 4,
},
+ .valid = {
+ .min_access_size = 4,
+ .max_access_size = 8,
+ },
};
static const MemoryRegionOps tcx_rstip_ops = {
.read = tcx_stip_readl,
.write = tcx_rstip_writel,
.endianness = DEVICE_NATIVE_ENDIAN,
- .valid = {
+ .impl = {
.min_access_size = 4,
.max_access_size = 4,
},
+ .valid = {
+ .min_access_size = 4,
+ .max_access_size = 8,
+ },
};
static uint64_t tcx_blit_readl(void *opaque, hwaddr addr,
@@ -650,10 +658,14 @@ static const MemoryRegionOps tcx_rblit_ops = {
.read = tcx_blit_readl,
.write = tcx_rblit_writel,
.endianness = DEVICE_NATIVE_ENDIAN,
- .valid = {
+ .impl = {
.min_access_size = 4,
.max_access_size = 4,
},
+ .valid = {
+ .min_access_size = 4,
+ .max_access_size = 8,
+ },
};
static void tcx_invalidate_cursor_position(TCXState *s)
--
2.26.2
--
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1892540
Title:
qemu can no longer boot NetBSD/sparc
Status in QEMU:
New
Bug description:
Booting NetBSD/sparc in qemu no longer works. It broke between qemu
version 5.0.0 and 5.1.0, and a bisection identified the following as
the offending commit:
[5d971f9e672507210e77d020d89e0e89165c8fc9] memory: Revert "memory:
accept mismatching sizes in memory_region_access_valid"
It's still broken as of 7fd51e68c34fcefdb4d6fd646ed3346f780f89f4.
To reproduce, run
wget http://ftp.netbsd.org/pub/NetBSD/NetBSD-9.0/images/NetBSD-9.0-sparc.iso
qemu-system-sparc -nographic -cdrom NetBSD-9.0-sparc.iso -boot d
The expected behavior is that the guest boots to the prompt
Installation medium to load the additional utilities from:
The observed behavior is a panic:
[ 1.0000050] system[0]: trap 0x29: pc=0xf0046b14 sfsr=0xb6 sfva=0x54000000
[ 1.0000050] cpu0: data fault: pc=0xf0046b14 addr=0x54000000 sfsr=0xb6<PERR=0x0,LVL=0x0,AT=0x5,FT=0x5,FAV,OW>
[ 1.0000050] panic: kernel fault
[ 1.0000050] halted
To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1892540/+subscriptions
next prev reply other threads:[~2020-08-22 14:16 UTC|newest]
Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-08-21 19:15 [Bug 1892540] [NEW] qemu can no longer boot NetBSD/sparc Andreas Gustafsson
2020-08-22 10:50 ` [Bug 1892540] " Laurent Vivier
2020-08-22 14:15 ` Philippe Mathieu-Daudé [this message]
2020-08-22 14:15 ` [Bug 1892540] [RFC PATCH] hw/display/tcx: Allow 64-bit accesses to framebuffer stippler and blitter Philippe Mathieu-Daudé
2020-08-22 14:21 ` [RFC PATCH v2] " Philippe Mathieu-Daudé
2020-08-22 14:21 ` [Bug 1892540] " Philippe Mathieu-Daudé
2020-08-29 15:41 ` Richard Henderson
2020-08-29 16:13 ` Michael
2020-08-29 16:45 ` Philippe Mathieu-Daudé
2020-08-29 16:45 ` [Bug 1892540] " Philippe Mathieu-Daudé
2020-08-29 21:04 ` Michael
2020-08-30 7:32 ` Mark Cave-Ayland
2020-08-30 7:32 ` [Bug 1892540] " Mark Cave-Ayland
2020-10-24 20:53 ` Philippe Mathieu-Daudé
2020-10-24 20:53 ` [Bug 1892540] " Philippe Mathieu-Daudé
2020-08-30 6:18 ` [Bug 1892540] " mst
2020-08-30 6:18 ` mst
2020-09-01 10:04 ` Philippe Mathieu-Daudé
2020-09-01 10:04 ` Philippe Mathieu-Daudé
2020-08-30 6:59 ` Andreas Gustafsson
2020-08-30 6:59 ` [Bug 1892540] " Andreas Gustafsson
2020-09-01 10:03 ` Philippe Mathieu-Daudé
2020-09-01 10:03 ` [Bug 1892540] " Philippe Mathieu-Daudé
2020-09-01 10:04 ` Andreas Gustafsson
2020-09-01 10:04 ` [Bug 1892540] " Andreas Gustafsson
2020-10-21 9:25 ` Mark Cave-Ayland
2020-10-21 9:25 ` [Bug 1892540] " Mark Cave-Ayland
2020-08-22 14:36 ` [Bug 1892540] Re: qemu can no longer boot NetBSD/sparc Philippe Mathieu-Daudé
2020-10-24 20:51 ` [PATCH v3] hw/display/tcx: Allow 64-bit accesses to framebuffer stippler and blitter Philippe Mathieu-Daudé
2020-10-24 20:51 ` [Bug 1892540] " Philippe Mathieu-Daudé
2020-10-25 10:55 ` Mark Cave-Ayland
2020-10-25 10:55 ` [Bug 1892540] " Mark Cave-Ayland
2020-10-25 11:42 ` Philippe Mathieu-Daudé
2020-10-25 11:42 ` [Bug 1892540] " Philippe Mathieu-Daudé
2020-11-20 8:17 ` [PATCH for-5.2] hw/display/tcx: add missing 64-bit access for framebuffer blitter Mark Cave-Ayland
2020-11-20 8:17 ` [Bug 1892540] " Mark Cave-Ayland
2020-11-20 10:18 ` Philippe Mathieu-Daudé
2020-11-20 10:18 ` [Bug 1892540] " Philippe Mathieu-Daudé
2020-11-23 8:14 ` Mark Cave-Ayland
2020-11-23 8:14 ` [Bug 1892540] " Mark Cave-Ayland
2020-11-21 23:46 ` [Bug 1892540] Re: qemu can no longer boot NetBSD/sparc Peter Maydell
2020-11-22 11:05 ` Mark Cave-Ayland
2020-11-22 11:05 ` Mark Cave-Ayland
2020-11-23 11:39 ` mst
2020-11-23 8:20 ` Mark Cave-Ayland
2020-12-10 8:42 ` Thomas Huth
-- strict thread matches above, loose matches on Subject: below --
2020-10-28 8:23 [PULL 00/10] qemu-sparc queue 20201028 Mark Cave-Ayland
2020-10-28 8:23 ` [PULL 01/10] sparc32-dma: use object_initialize_child() for espdma and ledma child objects Mark Cave-Ayland
2020-10-28 8:23 ` [PULL 02/10] sparc32-ledma: use object_initialize_child() for lance child object Mark Cave-Ayland
2020-10-28 8:23 ` [PULL 03/10] sparc32-espdma: use object_initialize_child() for esp " Mark Cave-Ayland
2020-10-28 8:23 ` [PULL 04/10] sparc32-ledma: don't reference nd_table directly within the device Mark Cave-Ayland
2020-10-28 8:23 ` [PULL 05/10] sabre: don't call sysbus_mmio_map() in sabre_realize() Mark Cave-Ayland
2020-10-28 8:23 ` [PULL 06/10] hw/display/tcx: Allow 64-bit accesses to framebuffer stippler and blitter Mark Cave-Ayland
2020-10-28 8:23 ` [Bug 1892540] " Mark Cave-Ayland
2020-11-20 16:16 ` Philippe Mathieu-Daudé
2020-10-28 8:23 ` [PULL 07/10] sabre: increase number of PCI bus IRQs from 32 to 64 Mark Cave-Ayland
2020-10-28 8:23 ` [PULL 08/10] hw/pci-host/sabre: Update documentation link Mark Cave-Ayland
2020-10-28 8:23 ` [PULL 09/10] hw/pci-host/sabre: Remove superfluous address range check Mark Cave-Ayland
2020-10-28 8:23 ` [PULL 10/10] hw/pci-host/sabre: Simplify code initializing variable once Mark Cave-Ayland
2020-10-31 14:42 ` [PULL 00/10] qemu-sparc queue 20201028 Peter Maydell
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=20200822141545.1314296-1-f4bug@amsat.org \
--to=f4bug@amsat.org \
--cc=1892540@bugs.launchpad.net \
--cc=gson@gson.org \
--cc=kraxel@redhat.com \
--cc=laurent@vivier.eu \
--cc=macallan@NetBSD.org \
--cc=mark.cave-ayland@ilande.co.uk \
--cc=qemu-devel@nongnu.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 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).