Message ID | 1454588606-14094-8-git-send-email-marcin.krzeminski@nokia.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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; >
> -----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 --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;