From: "Cédric Le Goater" <clg@fr.ibm.com>
To: marcin.krzeminski@nokia.com, qemu-devel@nongnu.org
Cc: crosthwaitepeter@gmail.com, pawel.lenkow@itlen.com
Subject: Re: [Qemu-devel] [PATCH v2 04/11] block: m25p80: Extend address mode
Date: Fri, 5 Feb 2016 08:58:05 +0100 [thread overview]
Message-ID: <56B4560D.1000808@fr.ibm.com> (raw)
In-Reply-To: <1454588606-14094-5-git-send-email-marcin.krzeminski@nokia.com>
On 02/04/2016 01:23 PM, marcin.krzeminski@nokia.com wrote:
> From: Marcin Krzeminski <marcin.krzeminski@nokia.com>
>
> Extend address mode allows to switch flash 16 MiB banks,
> allowing user to access all flash sectors.
> This access mode is used by u-boot.
>
> Signed-off-by: Marcin Krzeminski <marcin.krzeminski@nokia.com>
> Reviewed-by: Peter Crosthwaite <crosthwaite.peter@gmail.com>
> ---
> hw/block/m25p80.c | 27 +++++++++++++++++++++++++++
> 1 file changed, 27 insertions(+)
>
> diff --git a/hw/block/m25p80.c b/hw/block/m25p80.c
> index f9088c5..6b5f00d 100644
> --- a/hw/block/m25p80.c
> +++ b/hw/block/m25p80.c
> @@ -48,6 +48,9 @@
> */
> #define WR_1 0x100
>
> +/* 16 MiB max in 3 byte address mode */
> +#define MAX_3BYTES_SIZE 0x1000000
> +
> typedef struct FlashPartInfo {
> const char *part_name;
> /* jedec code. (jedec >> 16) & 0xff is the 1st byte, >> 8 the 2nd etc */
> @@ -234,6 +237,9 @@ typedef enum {
> ERASE_32K = 0x52,
> ERASE_SECTOR = 0xd8,
>
> + EXTEND_ADDR_READ = 0xC8,
> + EXTEND_ADDR_WRITE = 0xC5,
> +
> RESET_ENABLE = 0x66,
> RESET_MEMORY = 0x99,
> } FlashCMD;
> @@ -264,6 +270,7 @@ typedef struct Flash {
> uint64_t cur_addr;
> bool write_enable;
> bool reset_enable;
> + uint8_t ear;
>
> int64_t dirty_page;
>
> @@ -404,6 +411,7 @@ static void complete_collecting_data(Flash *s)
> s->cur_addr = s->data[0] << 16;
> s->cur_addr |= s->data[1] << 8;
> s->cur_addr |= s->data[2];
> + s->cur_addr += (s->ear & 0x3) * MAX_3BYTES_SIZE;
here ^
and this line does not appear in patch 5 which is curious. Is that a refresh
issue ?
Thanks,
C.
>
> s->state = STATE_IDLE;
>
> @@ -431,6 +439,9 @@ static void complete_collecting_data(Flash *s)
> s->write_enable = false;
> }
> break;
> + case EXTEND_ADDR_WRITE:
> + s->ear = s->data[0];
> + break;
> default:
> break;
> }
> @@ -440,6 +451,7 @@ static void reset_memory(Flash *s)
> {
> s->cmd_in_progress = NOP;
> s->cur_addr = 0;
> + s->ear = 0;
> s->len = 0;
> s->needed_bytes = 0;
> s->pos = 0;
> @@ -563,6 +575,20 @@ static void decode_new_cmd(Flash *s, uint32_t value)
> break;
> case NOP:
> break;
> + case EXTEND_ADDR_READ:
> + s->data[0] = s->ear;
> + s->pos = 0;
> + s->len = 1;
> + s->state = STATE_READING_DATA;
> + break;
> + case EXTEND_ADDR_WRITE:
> + if (s->write_enable) {
> + s->needed_bytes = 1;
> + s->pos = 0;
> + s->len = 0;
> + s->state = STATE_COLLECTING_DATA;
> + }
> + break;
> case RESET_ENABLE:
> s->reset_enable = true;
> break;
> @@ -699,6 +725,7 @@ static const VMStateDescription vmstate_m25p80 = {
> VMSTATE_UINT8(cmd_in_progress, Flash),
> VMSTATE_UINT64(cur_addr, Flash),
> VMSTATE_BOOL(write_enable, Flash),
> + VMSTATE_UINT8(ear, Flash),
> VMSTATE_BOOL(reset_enable, Flash),
> VMSTATE_END_OF_LIST()
> }
>
next prev parent reply other threads:[~2016-02-05 7:58 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-04 12:23 [Qemu-devel] [PATCH v2 00/11] Support for N25Q256/512 and AT25128/256 marcin.krzeminski
2016-02-04 12:23 ` [Qemu-devel] [PATCH v2 01/11] block: m25p80: Removed unused variable marcin.krzeminski
2016-02-04 12:23 ` [Qemu-devel] [PATCH v2 02/11] block: m25p80: RESET_ENABLE and RESET_MEMORY commnads marcin.krzeminski
2016-02-04 12:23 ` [Qemu-devel] [PATCH v2 03/11] block: m25p80: Widen flags variable marcin.krzeminski
2016-02-04 12:23 ` [Qemu-devel] [PATCH v2 04/11] block: m25p80: Extend address mode marcin.krzeminski
2016-02-05 7:58 ` Cédric Le Goater [this message]
2016-02-05 10:11 ` Krzeminski, Marcin (Nokia - PL/Wroclaw)
2016-02-04 12:23 ` [Qemu-devel] [PATCH v2 05/11] block: m25p80: 4byte " marcin.krzeminski
2016-02-05 7:53 ` Cédric Le Goater
2016-02-05 9:56 ` Krzeminski, Marcin (Nokia - PL/Wroclaw)
2016-02-04 12:23 ` [Qemu-devel] [PATCH v2 06/11] block: m25p80: Add configuration registers marcin.krzeminski
2016-02-04 12:23 ` [Qemu-devel] [PATCH v2 07/11] block: m25p80: Dummy cycles for N25Q256/512 marcin.krzeminski
2016-02-05 8:05 ` Cédric Le Goater
2016-02-05 10:15 ` Krzeminski, Marcin (Nokia - PL/Wroclaw)
2016-02-04 12:23 ` [Qemu-devel] [PATCH v2 08/11] block: m25p80: Fast read and 4bytes commands marcin.krzeminski
2016-02-04 12:23 ` [Qemu-devel] [PATCH v2 09/11] block: m25p80: Implemented FSR register marcin.krzeminski
2016-02-04 12:23 ` [Qemu-devel] [PATCH v2 10/11] block: m25p80: n25q256a/n25q512a models marcin.krzeminski
2016-02-04 12:23 ` [Qemu-devel] [PATCH v2 11/11] block: m25p80: at25128a/at25256a models marcin.krzeminski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=56B4560D.1000808@fr.ibm.com \
--to=clg@fr.ibm.com \
--cc=crosthwaitepeter@gmail.com \
--cc=marcin.krzeminski@nokia.com \
--cc=pawel.lenkow@itlen.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.