[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 8/9] m25p80: Fast read commands family changes.
From: |
Cédric Le Goater |
Subject: |
Re: [Qemu-devel] [PATCH 8/9] m25p80: Fast read commands family changes. |
Date: |
Thu, 16 Jun 2016 09:19:53 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Icedove/38.8.0 |
On 06/15/2016 03:41 PM, address@hidden wrote:
> From: Marcin Krzeminski <address@hidden>
>
> Add support for Spansion and Macronix flashes.
> Additionally Numonyx(Micron) move from default
> in fast read commands family.
maybe we could start adding sub routines to decode some of the
larger commands, to ease reading. DIOR and QIOR are good candidates.
C.
> Signed-off-by: Marcin Krzeminski <address@hidden>
> ---
> hw/block/m25p80.c | 72
> ++++++++++++++++++++++++++++++++++++++++++++++++-------
> 1 file changed, 64 insertions(+), 8 deletions(-)
>
> diff --git a/hw/block/m25p80.c b/hw/block/m25p80.c
> index 21998db..7bc0e03 100644
> --- a/hw/block/m25p80.c
> +++ b/hw/block/m25p80.c
> @@ -758,9 +758,23 @@ static void decode_new_cmd(Flash *s, uint32_t value)
> case QOR4:
> s->needed_bytes = get_addr_length(s);
> switch (get_man(s)) {
> + /* Dummy cycles - modeled with bytes writes instead of bits */
> case MAN_NUMONYX:
> s->needed_bytes += extract32(s->volatile_cfg, 4, 4);
> break;
> + case MAN_MACRONIX:
> + if (extract32(s->volatile_cfg, 6, 2) == 1) {
> + s->needed_bytes += 6;
> + } else {
> + s->needed_bytes += 8;
> + }
> + break;
> + case MAN_SPANSION:
> + s->needed_bytes += extract32(s->spansion_cr2v,
> + SPANSION_DUMMY_CLK_POS,
> + SPANSION_DUMMY_CLK_LEN
> + );
> + break;
> default:
> break;
> }
> @@ -771,15 +785,36 @@ static void decode_new_cmd(Flash *s, uint32_t value)
>
> case DIOR:
> case DIOR4:
> + s->needed_bytes = get_addr_length(s);
> + /* Dummy cycles modeled with bytes writes instead of bits */
> switch (get_man(s)) {
> case MAN_WINBOND:
> + s->needed_bytes += 4;
> + break;
> case MAN_SPANSION:
> - s->needed_bytes = 4;
> + s->needed_bytes += extract32(s->spansion_cr2v,
> + SPANSION_DUMMY_CLK_POS,
> + SPANSION_DUMMY_CLK_LEN
> + );
> break;
> - default:
> - s->needed_bytes = get_addr_length(s);
> - /* Dummy cycles modeled with bytes writes instead of bits */
> + case MAN_NUMONYX:
> s->needed_bytes += extract32(s->volatile_cfg, 4, 4);
> + break;
> + case MAN_MACRONIX:
> + switch (extract32(s->volatile_cfg, 6, 2)) {
> + case 1:
> + s->needed_bytes += 6;
> + break;
> + case 2:
> + s->needed_bytes += 8;
> + break;
> + default:
> + s->needed_bytes += 4;
> + break;
> + }
> + break;
> + default:
> + break;
> }
> s->pos = 0;
> s->len = 0;
> @@ -788,15 +823,36 @@ static void decode_new_cmd(Flash *s, uint32_t value)
>
> case QIOR:
> case QIOR4:
> + s->needed_bytes = get_addr_length(s);
> + /* Dummy cycles modeled with bytes writes instead of bits */
> switch (get_man(s)) {
> case MAN_WINBOND:
> + s->needed_bytes += 4;
> + break;
> case MAN_SPANSION:
> - s->needed_bytes = 6;
> + s->needed_bytes += extract32(s->spansion_cr2v,
> + SPANSION_DUMMY_CLK_POS,
> + SPANSION_DUMMY_CLK_LEN
> + );
> break;
> - default:
> - s->needed_bytes = get_addr_length(s);
> - /* Dummy cycles modeled with bytes writes instead of bits */
> + case MAN_NUMONYX:
> s->needed_bytes += extract32(s->volatile_cfg, 4, 4);
> + break;
> + case MAN_MACRONIX:
> + switch (extract32(s->volatile_cfg, 6, 2)) {
> + case 1:
> + s->needed_bytes += 4;
> + break;
> + case 2:
> + s->needed_bytes += 8;
> + break;
> + default:
> + s->needed_bytes += 6;
> + break;
> + }
> + break;
> + default:
> + break;
> }
> s->pos = 0;
> s->len = 0;
>
- [Qemu-devel] Odp.: [PATCH 6/9] m25p80: Introduce quad and equad modes., (continued)
- [Qemu-devel] [PATCH 2/9] m25p80: Make a table for JEDEC ID., marcin.krzeminski, 2016/06/15
- [Qemu-devel] [PATCH 8/9] m25p80: Fast read commands family changes., marcin.krzeminski, 2016/06/15
- Re: [Qemu-devel] [PATCH 8/9] m25p80: Fast read commands family changes.,
Cédric Le Goater <=
- [Qemu-devel] [PATCH 1/9] m25p80: Replace JEDEC ID masking with function., marcin.krzeminski, 2016/06/15
- [Qemu-devel] [PATCH 7/9] m25p80: Introduce configuration registers., marcin.krzeminski, 2016/06/15
[Qemu-devel] [PATCH 9/9] m25p80: New flash devices., marcin.krzeminski, 2016/06/15