qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Philippe Mathieu-Daudé" <philmd@redhat.com>
To: Stephen Checkoway <stephen.checkoway@oberlin.edu>, qemu-devel@nongnu.org
Cc: Kevin Wolf <kwolf@redhat.com>,
	qemu-block@nongnu.org, Max Reitz <mreitz@redhat.com>,
	Markus Armbruster <armbru@redhat.com>,
	Laszlo Ersek <lersek@redhat.com>
Subject: Re: [Qemu-devel] [PATCH 00/10] block/pflash_cfi02: Implement missing AMD pflash functionality
Date: Tue, 9 Apr 2019 12:34:11 +0200	[thread overview]
Message-ID: <6cf20899-f643-950b-37b9-dcc47df0d72e@redhat.com> (raw)
In-Reply-To: <cover.1554755001.git.stephen.checkoway@oberlin.edu>

[-- Attachment #1: Type: text/plain, Size: 3307 bytes --]

Hi Stephen,

[Cc'ing Markus and Laszlo, we have similar interest in pflash01 testing]

On 4/8/19 10:55 PM, Stephen Checkoway wrote:
> The goal of this patch series implement the following AMD command-set parallel
> flash functionality:
> - flash interleaving;
> - nonuniform sector sizes;
> - erase suspend/resume commands; and
> - multi-sector erase.

I am very glad you addressed these long overdue issues and very pleased
by your patches :)
I'll thoroughly review it during next week (this won't get merge for the
current 4.0 cycle anyway).

I started a similar cleanup (mostly pflash01 focused) and converted
DPRINTF to trace events, added few constants. I'll see if I can rebase
your work on top of mine. So far only your patch 2 (refactor) would be
modified, simplified as the "pull out all of the code to modify the
status into simple helper functions" part (which else I'd ask you to
move in a separate patch).

We should think of more intereleaved tests, I'll prepare a table of
current QEMU models using this device and how is their intereleave
mapping. Hopefully it would be enough to simply add the existing
machines to your current musicpal qtest.

Also I'd like to see some Top/Bottom block configuration qtests, your
patch #5 doesn't seem tested.

> During refactoring and implementation, I discovered several bugs that are
> fixed here as well:
> - flash commands use only 11-bits of the address in most cases, but the
>   current code uses all of them [1];
> - entering CFI mode from autoselect mode and then exiting CFI mode should
>   return the chip to autoselect mode, but the current code returns to read
>   array mode; and
> - reset command should be ignored during sector/chip erase, but the current
>   code performs the reset.
> 
> The first patch in the series adds a test for the existing behavior. Tests for
> additional behavior/bug fixes are added in the relevant patch.
> 
> 1. I found firmware in the wild that relies on the 11-bit address behavior,
>    probably due to a bug in the firmware itself.

Is it a musicpal firmware? Are you able to compare with real hardware?

I vaguely remember some issue regarding address bus width when trying to
implement the TopBlock small sectors, but I wasn't using the musicpal.
I'll see if I can find my old notes and test with your series.

Regards,

Phil.

> Stephen Checkoway (10):
>   block/pflash_cfi02: Add test for supported commands
>   block/pflash_cfi02: Refactor, NFC intended
>   block/pflash_cfi02: Fix command address comparison
>   block/pflash_cfi02: Implement intereleaved flash devices
>   block/pflash_cfi02: Implement nonuniform sector sizes
>   block/pflash_cfi02: Fix CFI in autoselect mode
>   block/pflash_cfi02: Fix reset command not ignored during erase
>   block/pflash_cfi02: Implement multi-sector erase
>   block/pflash_cfi02: Implement erase suspend/resume
>   block/pflash_cfi02: Use the chip erase time specified in the CFI table
> 
>  hw/block/pflash_cfi02.c   | 843 +++++++++++++++++++++++++++-----------
>  tests/Makefile.include    |   2 +
>  tests/pflash-cfi02-test.c | 757 ++++++++++++++++++++++++++++++++++
>  3 files changed, 1367 insertions(+), 235 deletions(-)
>  create mode 100644 tests/pflash-cfi02-test.c
> 


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: "Philippe Mathieu-Daudé" <philmd@redhat.com>
To: Stephen Checkoway <stephen.checkoway@oberlin.edu>, qemu-devel@nongnu.org
Cc: Kevin Wolf <kwolf@redhat.com>, Laszlo Ersek <lersek@redhat.com>,
	Markus Armbruster <armbru@redhat.com>,
	qemu-block@nongnu.org, Max Reitz <mreitz@redhat.com>
Subject: Re: [Qemu-devel] [PATCH 00/10] block/pflash_cfi02: Implement missing AMD pflash functionality
Date: Tue, 9 Apr 2019 12:34:11 +0200	[thread overview]
Message-ID: <6cf20899-f643-950b-37b9-dcc47df0d72e@redhat.com> (raw)
Message-ID: <20190409103411.guri24AscEstnFvRDBUqXl_qjNDGKGJvBUAEFVuWZRQ@z> (raw)
In-Reply-To: <cover.1554755001.git.stephen.checkoway@oberlin.edu>

[-- Attachment #1: Type: text/plain, Size: 3307 bytes --]

Hi Stephen,

[Cc'ing Markus and Laszlo, we have similar interest in pflash01 testing]

On 4/8/19 10:55 PM, Stephen Checkoway wrote:
> The goal of this patch series implement the following AMD command-set parallel
> flash functionality:
> - flash interleaving;
> - nonuniform sector sizes;
> - erase suspend/resume commands; and
> - multi-sector erase.

I am very glad you addressed these long overdue issues and very pleased
by your patches :)
I'll thoroughly review it during next week (this won't get merge for the
current 4.0 cycle anyway).

I started a similar cleanup (mostly pflash01 focused) and converted
DPRINTF to trace events, added few constants. I'll see if I can rebase
your work on top of mine. So far only your patch 2 (refactor) would be
modified, simplified as the "pull out all of the code to modify the
status into simple helper functions" part (which else I'd ask you to
move in a separate patch).

We should think of more intereleaved tests, I'll prepare a table of
current QEMU models using this device and how is their intereleave
mapping. Hopefully it would be enough to simply add the existing
machines to your current musicpal qtest.

Also I'd like to see some Top/Bottom block configuration qtests, your
patch #5 doesn't seem tested.

> During refactoring and implementation, I discovered several bugs that are
> fixed here as well:
> - flash commands use only 11-bits of the address in most cases, but the
>   current code uses all of them [1];
> - entering CFI mode from autoselect mode and then exiting CFI mode should
>   return the chip to autoselect mode, but the current code returns to read
>   array mode; and
> - reset command should be ignored during sector/chip erase, but the current
>   code performs the reset.
> 
> The first patch in the series adds a test for the existing behavior. Tests for
> additional behavior/bug fixes are added in the relevant patch.
> 
> 1. I found firmware in the wild that relies on the 11-bit address behavior,
>    probably due to a bug in the firmware itself.

Is it a musicpal firmware? Are you able to compare with real hardware?

I vaguely remember some issue regarding address bus width when trying to
implement the TopBlock small sectors, but I wasn't using the musicpal.
I'll see if I can find my old notes and test with your series.

Regards,

Phil.

> Stephen Checkoway (10):
>   block/pflash_cfi02: Add test for supported commands
>   block/pflash_cfi02: Refactor, NFC intended
>   block/pflash_cfi02: Fix command address comparison
>   block/pflash_cfi02: Implement intereleaved flash devices
>   block/pflash_cfi02: Implement nonuniform sector sizes
>   block/pflash_cfi02: Fix CFI in autoselect mode
>   block/pflash_cfi02: Fix reset command not ignored during erase
>   block/pflash_cfi02: Implement multi-sector erase
>   block/pflash_cfi02: Implement erase suspend/resume
>   block/pflash_cfi02: Use the chip erase time specified in the CFI table
> 
>  hw/block/pflash_cfi02.c   | 843 +++++++++++++++++++++++++++-----------
>  tests/Makefile.include    |   2 +
>  tests/pflash-cfi02-test.c | 757 ++++++++++++++++++++++++++++++++++
>  3 files changed, 1367 insertions(+), 235 deletions(-)
>  create mode 100644 tests/pflash-cfi02-test.c
> 


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  parent reply	other threads:[~2019-04-09 10:34 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-08 20:55 [Qemu-devel] [PATCH 00/10] block/pflash_cfi02: Implement missing AMD pflash functionality Stephen Checkoway
2019-04-08 20:55 ` Stephen Checkoway
2019-04-08 20:55 ` [Qemu-devel] [PATCH 01/10] block/pflash_cfi02: Add test for supported commands Stephen Checkoway
2019-04-08 20:55   ` Stephen Checkoway
2019-04-09  6:13   ` Thomas Huth
2019-04-09  6:13     ` Thomas Huth
2019-04-09  7:45     ` Markus Armbruster
2019-04-09  7:45       ` Markus Armbruster
2019-04-09  8:16       ` Thomas Huth
2019-04-09  8:16         ` Thomas Huth
2019-04-09  8:35         ` Markus Armbruster
2019-04-09  8:35           ` Markus Armbruster
2019-04-09  8:40           ` Thomas Huth
2019-04-09  8:40             ` Thomas Huth
2019-04-09  8:50             ` Markus Armbruster
2019-04-09  8:50               ` Markus Armbruster
2019-04-09 15:37     ` Stephen Checkoway
2019-04-09 15:37       ` Stephen Checkoway
2019-04-10 14:39       ` Thomas Huth
2019-04-10 14:39         ` Thomas Huth
2019-04-08 20:55 ` [Qemu-devel] [PATCH 02/10] block/pflash_cfi02: Refactor, NFC intended Stephen Checkoway
2019-04-08 20:55   ` Stephen Checkoway
2019-04-08 20:55 ` [Qemu-devel] [PATCH 03/10] block/pflash_cfi02: Fix command address comparison Stephen Checkoway
2019-04-08 20:55   ` Stephen Checkoway
2019-04-08 20:55 ` [Qemu-devel] [PATCH 04/10] block/pflash_cfi02: Implement intereleaved flash devices Stephen Checkoway
2019-04-08 20:55   ` Stephen Checkoway
2019-04-08 20:55 ` [Qemu-devel] [PATCH 05/10] block/pflash_cfi02: Implement nonuniform sector sizes Stephen Checkoway
2019-04-08 20:55   ` Stephen Checkoway
2019-04-08 20:55 ` [Qemu-devel] [PATCH 06/10] block/pflash_cfi02: Fix CFI in autoselect mode Stephen Checkoway
2019-04-08 20:55   ` Stephen Checkoway
2019-04-08 20:55 ` [Qemu-devel] [PATCH 07/10] block/pflash_cfi02: Fix reset command not ignored during erase Stephen Checkoway
2019-04-08 20:55   ` Stephen Checkoway
2019-04-08 20:55 ` [Qemu-devel] [PATCH 08/10] block/pflash_cfi02: Implement multi-sector erase Stephen Checkoway
2019-04-08 20:55   ` Stephen Checkoway
2019-04-08 20:55 ` [Qemu-devel] [PATCH 09/10] block/pflash_cfi02: Implement erase suspend/resume Stephen Checkoway
2019-04-08 20:55   ` Stephen Checkoway
2019-04-08 20:55 ` [Qemu-devel] [PATCH 10/10] block/pflash_cfi02: Use the chip erase time specified in the CFI table Stephen Checkoway
2019-04-08 20:55   ` Stephen Checkoway
2019-04-08 21:11 ` [Qemu-devel] [PATCH 00/10] block/pflash_cfi02: Implement missing AMD pflash functionality no-reply
2019-04-08 21:11   ` no-reply
2019-04-09 10:34 ` Philippe Mathieu-Daudé [this message]
2019-04-09 10:34   ` Philippe Mathieu-Daudé
2019-04-09 15:55   ` Stephen Checkoway
2019-04-09 15:55     ` Stephen Checkoway
2019-04-09 16:15     ` Philippe Mathieu-Daudé
2019-04-09 16:15       ` Philippe Mathieu-Daudé
2019-04-09 18:00       ` Stephen Checkoway
2019-04-09 18:00         ` Stephen Checkoway
2019-04-18 21:00       ` Stephen Checkoway
2019-04-18 21:00         ` Stephen Checkoway

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=6cf20899-f643-950b-37b9-dcc47df0d72e@redhat.com \
    --to=philmd@redhat.com \
    --cc=armbru@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=lersek@redhat.com \
    --cc=mreitz@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=stephen.checkoway@oberlin.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: 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).