W dniu 29.10.2017 o 11:13, Francisco Iglesias pisze:
Add support for the bank address register access commands (BRRD/BRWR) and
the BULK_ERASE (0x60) command.

Signed-off-by: Francisco Iglesias <frasse.igles...@gmail.com>
Acked-by: Marcin Krzemiński <mar.krzemin...@gmail.com>
---
  hw/block/m25p80.c | 7 +++++++
  1 file changed, 7 insertions(+)

diff --git a/hw/block/m25p80.c b/hw/block/m25p80.c
index 7a5c137..cf39e36 100644
--- a/hw/block/m25p80.c
+++ b/hw/block/m25p80.c
@@ -331,7 +331,10 @@ typedef enum {
      WRDI = 0x4,
      RDSR = 0x5,
      WREN = 0x6,
+    BRRD = 0x16,
+    BRWR = 0x17,
      JEDEC_READ = 0x9f,
+    BULK_ERASE_60 = 0x60,
      BULK_ERASE = 0xc7,
      READ_FSR = 0x70,
      RDCR = 0x15,
@@ -704,6 +707,7 @@ static void complete_collecting_data(Flash *s)
              s->write_enable = false;
          }
          break;
+    case BRWR:
      case EXTEND_ADDR_WRITE:
          s->ear = s->data[0];
          break;
@@ -1041,6 +1045,7 @@ static void decode_new_cmd(Flash *s, uint32_t value)
          s->state = STATE_READING_DATA;
          break;
+ case BULK_ERASE_60:
      case BULK_ERASE:
          if (s->write_enable) {
              DB_PRINT_L(0, "chip erase\n");
@@ -1058,12 +1063,14 @@ static void decode_new_cmd(Flash *s, uint32_t value)
      case EX_4BYTE_ADDR:
          s->four_bytes_address_mode = false;
          break;
+    case BRRD:
      case EXTEND_ADDR_READ:
          s->data[0] = s->ear;
          s->pos = 0;
          s->len = 1;
          s->state = STATE_READING_DATA;
          break;
+    case BRWR:
      case EXTEND_ADDR_WRITE:
          if (s->write_enable) {
              s->needed_bytes = 1;
Regards,
Marcin

Reply via email to