diff mbox

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

Message ID 1454588606-14094-8-git-send-email-marcin.krzeminski@nokia.com
State New
Headers show

Commit Message

Krzeminski, Marcin (Nokia - PL/Wroclaw) Feb. 4, 2016, 12:23 p.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 | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

Cédric Le Goater Feb. 5, 2016, 8:05 a.m. UTC | #1
On 02/04/2016 01:23 PM, marcin.krzeminski@nokia.com wrote:
> 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 | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/hw/block/m25p80.c b/hw/block/m25p80.c
> index a213587..df1f829 100644
> --- a/hw/block/m25p80.c
> +++ b/hw/block/m25p80.c
> @@ -531,6 +531,10 @@ static void decode_new_cmd(Flash *s, uint32_t value)
>      case DOR:
>      case QOR:
>          s->needed_bytes = get_cmd_length(s);
> +        if ( ((s->pi->jedec >> 16) & 0xFF) == JEDEC_NUMONYX ) {

There are a few other areas where we check the manufactory id. May be we 
could add :

	#define manuf_id(pinfo) ((pinfo)->jedec >> 16) & 0xFF


> +            /* Dummy cycles - modeled with bytes writes instead of bits */
> +            s->needed_bytes += extract32(s->volatile_cfg,4,4);

white space issues ^

> +        }
>          s->pos = 0;
>          s->len = 0;
>          s->state = STATE_COLLECTING_DATA;
> @@ -544,6 +548,7 @@ static void decode_new_cmd(Flash *s, uint32_t value)
>              break;
>          case JEDEC_NUMONYX:
>              s->needed_bytes = get_cmd_length(s);
> +            s->needed_bytes += extract32(s->volatile_cfg,4,4);
>              break;
>          default:
>              s->needed_bytes = 5;
> @@ -561,6 +566,7 @@ static void decode_new_cmd(Flash *s, uint32_t value)
>              break;
>          case JEDEC_NUMONYX:
>              s->needed_bytes = get_cmd_length(s);
> +            s->needed_bytes += extract32(s->volatile_cfg,4,4);
>              break;
>          default:
>              s->needed_bytes = 8;
>
Krzeminski, Marcin (Nokia - PL/Wroclaw) Feb. 5, 2016, 10:15 a.m. UTC | #2
> -----Original Message-----
> From: EXT Cédric Le Goater [mailto:clg@fr.ibm.com]
> Sent: Friday, February 05, 2016 9:06 AM
> To: Krzeminski, Marcin (Nokia - PL/Wroclaw); qemu-devel@nongnu.org
> Cc: crosthwaitepeter@gmail.com; pawel.lenkow@itlen.com
> Subject: Re: [PATCH v2 07/11] block: m25p80: Dummy cycles for
> N25Q256/512
> 
> On 02/04/2016 01:23 PM, marcin.krzeminski@nokia.com wrote:
> > 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 | 6 ++++++
> >  1 file changed, 6 insertions(+)
> >
> > diff --git a/hw/block/m25p80.c b/hw/block/m25p80.c index
> > a213587..df1f829 100644
> > --- a/hw/block/m25p80.c
> > +++ b/hw/block/m25p80.c
> > @@ -531,6 +531,10 @@ static void decode_new_cmd(Flash *s, uint32_t
> value)
> >      case DOR:
> >      case QOR:
> >          s->needed_bytes = get_cmd_length(s);
> > +        if ( ((s->pi->jedec >> 16) & 0xFF) == JEDEC_NUMONYX ) {
> 
> There are a few other areas where we check the manufactory id. May be we
> could add :
> 
> 	#define manuf_id(pinfo) ((pinfo)->jedec >> 16) & 0xFF
> 
> 
I will probably add this with Micronics/Spansion patches.

> > +            /* Dummy cycles - modeled with bytes writes instead of bits */
> > +            s->needed_bytes += extract32(s->volatile_cfg,4,4);
> 
> white space issues ^
> 
Thanks,
Marcin
> > +        }
> >          s->pos = 0;
> >          s->len = 0;
> >          s->state = STATE_COLLECTING_DATA; @@ -544,6 +548,7 @@ static
> > void decode_new_cmd(Flash *s, uint32_t value)
> >              break;
> >          case JEDEC_NUMONYX:
> >              s->needed_bytes = get_cmd_length(s);
> > +            s->needed_bytes += extract32(s->volatile_cfg,4,4);
> >              break;
> >          default:
> >              s->needed_bytes = 5;
> > @@ -561,6 +566,7 @@ static void decode_new_cmd(Flash *s, uint32_t
> value)
> >              break;
> >          case JEDEC_NUMONYX:
> >              s->needed_bytes = get_cmd_length(s);
> > +            s->needed_bytes += extract32(s->volatile_cfg,4,4);
> >              break;
> >          default:
> >              s->needed_bytes = 8;
> >
diff mbox

Patch

diff --git a/hw/block/m25p80.c b/hw/block/m25p80.c
index a213587..df1f829 100644
--- a/hw/block/m25p80.c
+++ b/hw/block/m25p80.c
@@ -531,6 +531,10 @@  static void decode_new_cmd(Flash *s, uint32_t value)
     case DOR:
     case QOR:
         s->needed_bytes = get_cmd_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;
@@ -544,6 +548,7 @@  static void decode_new_cmd(Flash *s, uint32_t value)
             break;
         case JEDEC_NUMONYX:
             s->needed_bytes = get_cmd_length(s);
+            s->needed_bytes += extract32(s->volatile_cfg,4,4);
             break;
         default:
             s->needed_bytes = 5;
@@ -561,6 +566,7 @@  static void decode_new_cmd(Flash *s, uint32_t value)
             break;
         case JEDEC_NUMONYX:
             s->needed_bytes = get_cmd_length(s);
+            s->needed_bytes += extract32(s->volatile_cfg,4,4);
             break;
         default:
             s->needed_bytes = 8;