On 02/04/2016 01:23 PM, [email protected] wrote:
> From: Marcin Krzeminski <[email protected]>
>
> This patch handles dummy cycles.
>
> Signed-off-by: Marcin Krzeminski <[email protected]>
> ---
> 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;
>