* [Qemu-devel] [PULL 0/1] pflash-next patches for hard features freeze @ 2019-07-09 15:21 Philippe Mathieu-Daudé 2019-07-09 15:21 ` [Qemu-devel] [PULL 1/1] Revert "hw/block/pflash_cfi02: Reduce I/O accesses to 16-bit" Philippe Mathieu-Daudé 2019-07-09 16:20 ` [Qemu-devel] [PULL 0/1] pflash-next patches for hard features freeze Peter Maydell 0 siblings, 2 replies; 3+ messages in thread From: Philippe Mathieu-Daudé @ 2019-07-09 15:21 UTC (permalink / raw) To: Peter Maydell, qemu-devel Cc: Kevin Wolf, Philippe Mathieu-Daudé, qemu-block, Max Reitz The following changes since commit a538626aff7c8934ec47bc6ed41cac5bd1b7723c: Merge remote-tracking branch 'remotes/rth/tags/pull-tcg-20190709' into staging (2019-07-09 11:49:26 +0100) are available in the Git repository at: https://gitlab.com/philmd/qemu.git tags/pflash-next-20190709 for you to fetch changes up to 51500d37700904a0ee1ef775a585d871b36f7060: Revert "hw/block/pflash_cfi02: Reduce I/O accesses to 16-bit" (2019-07-09 17:14:39 +0200) ---------------------------------------------------------------- Restore 32-bit I/O accesses on AMD flashes (precautionary revert). ---------------------------------------------------------------- Philippe Mathieu-Daudé (1): Revert "hw/block/pflash_cfi02: Reduce I/O accesses to 16-bit" hw/block/pflash_cfi02.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) -- 2.20.1 ^ permalink raw reply [flat|nested] 3+ messages in thread
* [Qemu-devel] [PULL 1/1] Revert "hw/block/pflash_cfi02: Reduce I/O accesses to 16-bit" 2019-07-09 15:21 [Qemu-devel] [PULL 0/1] pflash-next patches for hard features freeze Philippe Mathieu-Daudé @ 2019-07-09 15:21 ` Philippe Mathieu-Daudé 2019-07-09 16:20 ` [Qemu-devel] [PULL 0/1] pflash-next patches for hard features freeze Peter Maydell 1 sibling, 0 replies; 3+ messages in thread From: Philippe Mathieu-Daudé @ 2019-07-09 15:21 UTC (permalink / raw) To: Peter Maydell, qemu-devel Cc: Kevin Wolf, Stephen Checkoway, qemu-block, Markus Armbruster, Max Reitz, Philippe Mathieu-Daudé This reverts commit 3ae0343db69c379beb5750b4ed70794bbed51b85. Stephen Checkoway noticed commit 3ae0343db69 is incorrect. This commit state all parallel flashes are limited to 16-bit accesses, however the x32 configuration exists in some models, such the Cypress S29CL032J, which CFI Device Geometry Definition announces: CFI ADDR DATA 0x28,0x29 = 0x0003 (x32-only asynchronous interface) Guests should not be affected by the previous change, because QEMU does not announce itself as x32 capable: /* Flash device interface (8 & 16 bits) */ pfl->cfi_table[0x28] = 0x02; pfl->cfi_table[0x29] = 0x00; Commit 3ae0343db69 does not restrict the bus to 16-bit accesses, but restrict the implementation as 16-bit access max, so a guest 32-bit access will result in 2x 16-bit calls. Now, we have 2 boards that register the flash device in 32-bit access: - PPC: taihu_405ep The CFI id matches the S29AL008J that is a 1MB in x16, while the code QEMU forces it to be 2MB, and checking Linux it expects a 4MB flash. - ARM: Digic4 While the comment says "Samsung K8P3215UQB 64M Bit (4Mx16)", this flash is 32Mb (2MB). Also note the CFI id does not match the comment. To avoid unexpected side effect, we revert commit 3ae0343db69, and will clean the board code later. Reported-by: Stephen Checkoway <stephen.checkoway@oberlin.edu> Reviewed-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> --- hw/block/pflash_cfi02.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/hw/block/pflash_cfi02.c b/hw/block/pflash_cfi02.c index 5392290c72..83084b9d72 100644 --- a/hw/block/pflash_cfi02.c +++ b/hw/block/pflash_cfi02.c @@ -317,6 +317,8 @@ static uint64_t pflash_read(void *opaque, hwaddr offset, unsigned int width) boff = offset & 0xFF; if (pfl->width == 2) { boff = boff >> 1; + } else if (pfl->width == 4) { + boff = boff >> 2; } switch (pfl->cmd) { default: @@ -447,6 +449,8 @@ static void pflash_write(void *opaque, hwaddr offset, uint64_t value, boff = offset; if (pfl->width == 2) { boff = boff >> 1; + } else if (pfl->width == 4) { + boff = boff >> 2; } /* Only the least-significant 11 bits are used in most cases. */ boff &= 0x7FF; @@ -706,7 +710,6 @@ static void pflash_write(void *opaque, hwaddr offset, uint64_t value, static const MemoryRegionOps pflash_cfi02_ops = { .read = pflash_read, .write = pflash_write, - .impl.max_access_size = 2, .valid.min_access_size = 1, .valid.max_access_size = 4, .endianness = DEVICE_NATIVE_ENDIAN, -- 2.20.1 ^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [Qemu-devel] [PULL 0/1] pflash-next patches for hard features freeze 2019-07-09 15:21 [Qemu-devel] [PULL 0/1] pflash-next patches for hard features freeze Philippe Mathieu-Daudé 2019-07-09 15:21 ` [Qemu-devel] [PULL 1/1] Revert "hw/block/pflash_cfi02: Reduce I/O accesses to 16-bit" Philippe Mathieu-Daudé @ 2019-07-09 16:20 ` Peter Maydell 1 sibling, 0 replies; 3+ messages in thread From: Peter Maydell @ 2019-07-09 16:20 UTC (permalink / raw) To: Philippe Mathieu-Daudé Cc: Kevin Wolf, QEMU Developers, Qemu-block, Max Reitz On Tue, 9 Jul 2019 at 16:21, Philippe Mathieu-Daudé <philmd@redhat.com> wrote: > > The following changes since commit a538626aff7c8934ec47bc6ed41cac5bd1b7723c: > > Merge remote-tracking branch 'remotes/rth/tags/pull-tcg-20190709' into staging (2019-07-09 11:49:26 +0100) > > are available in the Git repository at: > > https://gitlab.com/philmd/qemu.git tags/pflash-next-20190709 > > for you to fetch changes up to 51500d37700904a0ee1ef775a585d871b36f7060: > > Revert "hw/block/pflash_cfi02: Reduce I/O accesses to 16-bit" (2019-07-09 17:14:39 +0200) > > ---------------------------------------------------------------- > Restore 32-bit I/O accesses on AMD flashes > (precautionary revert). > > ---------------------------------------------------------------- > > Philippe Mathieu-Daudé (1): > Revert "hw/block/pflash_cfi02: Reduce I/O accesses to 16-bit" > > hw/block/pflash_cfi02.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) Applied, thanks. Please update the changelog at https://wiki.qemu.org/ChangeLog/4.1 for any user-visible changes. -- PMM ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2019-07-09 16:22 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2019-07-09 15:21 [Qemu-devel] [PULL 0/1] pflash-next patches for hard features freeze Philippe Mathieu-Daudé 2019-07-09 15:21 ` [Qemu-devel] [PULL 1/1] Revert "hw/block/pflash_cfi02: Reduce I/O accesses to 16-bit" Philippe Mathieu-Daudé 2019-07-09 16:20 ` [Qemu-devel] [PULL 0/1] pflash-next patches for hard features freeze Peter Maydell
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).