From: mst@redhat.com To: Bug 1892540 <1892540@bugs.launchpad.net>, "Michael S. Tsirkin" <mst@redhat.com>, Palmer Dabbelt <palmer@dabbelt.com>, Alistair Francis <Alistair.Francis@wdc.com>, Sagar Karandikar <sagark@eecs.berkeley.edu>, Bastian Koppelmann <kbastian@mail.uni-paderborn.de> Cc: Paolo Bonzini <pbonzini@redhat.com>, Richard Henderson <rth@twiddle.net>, qemu-riscv@nongnu.org, qemu-devel@nongnu.org, qemu-stable@nongnu.org Subject: Re: [Bug 1892540] [RFC PATCH v2] hw/display/tcx: Allow 64-bit accesses to framebuffer stippler and blitter Date: Sun, 30 Aug 2020 02:18:39 -0400 [thread overview] Message-ID: <20200830021257-mutt-send-email-mst@kernel.org> (raw) In-Reply-To: <20200822142127.1316231-1-f4bug@amsat.org> On Sat, Aug 22, 2020 at 02:21:27PM -0000, Philippe Mathieu-Daudé wrote: > 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> Philippe, did you submit the patch on the mailing list normally too? I don't seem to see it there. the patch seems to work for me: Tested-by: Michael S. Tsirkin <mst@redhat.com> CC Nathan who reported a similar failure. Nathan, does the patch below fix the issue for you? > --- > Since v1: > - added missing uncommitted staged changes... (tcx_blit_ops) > --- 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) ----------------------------------------------------------- I think you shouldn't specify .min_access_size in impl, since that also allows 1 and 2 byte accesses from guest. > -- > 2.26.2 > > -- > You received this bug notification because you are subscribed to the bug > report. > 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
WARNING: multiple messages have this Message-ID (diff)
From: mst <1892540@bugs.launchpad.net> To: qemu-devel@nongnu.org Subject: Re: [Bug 1892540] [RFC PATCH v2] hw/display/tcx: Allow 64-bit accesses to framebuffer stippler and blitter Date: Sun, 30 Aug 2020 06:18:39 -0000 [thread overview] Message-ID: <20200830021257-mutt-send-email-mst@kernel.org> (raw) Message-ID: <20200830061839.NW8QbuP-IJ93npHMZUx40X-xIzLXVHuFzIO9B8Y_gBc@z> (raw) In-Reply-To: 20200822142127.1316231-1-f4bug@amsat.org On Sat, Aug 22, 2020 at 02:21:27PM -0000, Philippe Mathieu-Daudé wrote: > 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> Philippe, did you submit the patch on the mailing list normally too? I don't seem to see it there. the patch seems to work for me: Tested-by: Michael S. Tsirkin <mst@redhat.com> CC Nathan who reported a similar failure. Nathan, does the patch below fix the issue for you? > --- > Since v1: > - added missing uncommitted staged changes... (tcx_blit_ops) > --- 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) ----------------------------------------------------------- I think you shouldn't specify .min_access_size in impl, since that also allows 1 and 2 byte accesses from guest. > -- > 2.26.2 > > -- > You received this bug notification because you are subscribed to the bug > report. > 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 -- 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 parent reply other threads:[~2020-08-30 6:19 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 ` [RFC PATCH] hw/display/tcx: Allow 64-bit accesses to framebuffer stippler and blitter Philippe Mathieu-Daudé 2020-08-22 14:15 ` [Bug 1892540] " 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 ` mst [this message] 2020-08-30 6:18 ` [Bug 1892540] " 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=20200830021257-mutt-send-email-mst@kernel.org \ --to=mst@redhat.com \ --cc=1892540@bugs.launchpad.net \ --cc=Alistair.Francis@wdc.com \ --cc=kbastian@mail.uni-paderborn.de \ --cc=palmer@dabbelt.com \ --cc=pbonzini@redhat.com \ --cc=qemu-devel@nongnu.org \ --cc=qemu-riscv@nongnu.org \ --cc=qemu-stable@nongnu.org \ --cc=rth@twiddle.net \ --cc=sagark@eecs.berkeley.edu \ /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: linkBe 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).