diff mbox

[v4,07/11] block: m25p80: Dummy cycles for N25Q256/512

Message ID 1456128205-5092-8-git-send-email-marcin.krzeminski@nokia.com (mailing list archive)
State New, archived
Headers show

Commit Message

marcin.krzeminski@nokia.com Feb. 22, 2016, 8:03 a.m. UTC
From: Marcin Krzeminski <marcin.krzeminski@nokia.com>

This patch handles dummy cycles.

Signed-off-by: Marcin Krzeminski <marcin.krzeminski@nokia.com>
---
 hw/block/m25p80.c | 8 ++++++++
 1 file changed, 8 insertions(+)

Comments

Peter Crosthwaite March 17, 2016, 5:30 p.m. UTC | #1
On Mon, Feb 22, 2016 at 12:03 AM,  <marcin.krzeminski@nokia.com> wrote:
> From: Marcin Krzeminski <marcin.krzeminski@nokia.com>
>
> This patch handles dummy cycles.
>

More commit message needed:

"Use the setting in the volatile cfg register to correctly set the
number of dummy bytes"

> Signed-off-by: Marcin Krzeminski <marcin.krzeminski@nokia.com>
> ---
>  hw/block/m25p80.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
>
> diff --git a/hw/block/m25p80.c b/hw/block/m25p80.c
> index 9d5a071..aff28f3 100644
> --- a/hw/block/m25p80.c
> +++ b/hw/block/m25p80.c
> @@ -566,6 +566,10 @@ static void decode_new_cmd(Flash *s, uint32_t value)
>      case DOR:
>      case QOR:
>          s->needed_bytes = get_addr_length(s);
> +        if (((s->pi->jedec >> 16) & 0xFF) == JEDEC_NUMONYX) {
> +            /* Dummy cycles modeled with bytes writes instead of bits */
> +            s->needed_bytes += extract32(s->volatile_cfg, 4, 4);
> +        }
>          s->pos = 0;
>          s->len = 0;
>          s->state = STATE_COLLECTING_DATA;
> @@ -579,6 +583,8 @@ static void decode_new_cmd(Flash *s, uint32_t value)
>              break;
>          case JEDEC_NUMONYX:
>              s->needed_bytes = get_addr_length(s);
> +            /* Dummy cycles modeled with bytes writes instead of bits */
> +            s->needed_bytes += extract32(s->volatile_cfg, 4, 4);
>              break;
>          default:
>              s->needed_bytes = 5;

Following on from before, these defaults are NUMONYX policy based, so
I think your patch is to the default.

Otherwise: Reviewed-by: Peter Crosthwaite <crosthwaite.peter@gmail.com>

Regards,
Peter

> @@ -596,6 +602,8 @@ static void decode_new_cmd(Flash *s, uint32_t value)
>              break;
>          case JEDEC_NUMONYX:
>              s->needed_bytes = get_addr_length(s);
> +            /* Dummy cycles modeled with bytes writes instead of bits */
> +            s->needed_bytes += extract32(s->volatile_cfg, 4, 4);
>              break;
>          default:
>              s->needed_bytes = 8;
> --
> 2.5.0
>
diff mbox

Patch

diff --git a/hw/block/m25p80.c b/hw/block/m25p80.c
index 9d5a071..aff28f3 100644
--- a/hw/block/m25p80.c
+++ b/hw/block/m25p80.c
@@ -566,6 +566,10 @@  static void decode_new_cmd(Flash *s, uint32_t value)
     case DOR:
     case QOR:
         s->needed_bytes = get_addr_length(s);
+        if (((s->pi->jedec >> 16) & 0xFF) == JEDEC_NUMONYX) {
+            /* Dummy cycles modeled with bytes writes instead of bits */
+            s->needed_bytes += extract32(s->volatile_cfg, 4, 4);
+        }
         s->pos = 0;
         s->len = 0;
         s->state = STATE_COLLECTING_DATA;
@@ -579,6 +583,8 @@  static void decode_new_cmd(Flash *s, uint32_t value)
             break;
         case JEDEC_NUMONYX:
             s->needed_bytes = get_addr_length(s);
+            /* Dummy cycles modeled with bytes writes instead of bits */
+            s->needed_bytes += extract32(s->volatile_cfg, 4, 4);
             break;
         default:
             s->needed_bytes = 5;
@@ -596,6 +602,8 @@  static void decode_new_cmd(Flash *s, uint32_t value)
             break;
         case JEDEC_NUMONYX:
             s->needed_bytes = get_addr_length(s);
+            /* Dummy cycles modeled with bytes writes instead of bits */
+            s->needed_bytes += extract32(s->volatile_cfg, 4, 4);
             break;
         default:
             s->needed_bytes = 8;