[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 13/18] m25p80: Add additional flash commands:
From: |
Peter Maydell |
Subject: |
[Qemu-devel] [PULL 13/18] m25p80: Add additional flash commands: |
Date: |
Mon, 27 Jun 2016 15:45:05 +0100 |
From: Marcin Krzeminski <address@hidden>
Page program 4byte/quad and erase 32K sectors 4 bytes.
Signed-off-by: Marcin Krzeminski <address@hidden>
Reviewed-by: Cédric Le Goater <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>
---
hw/block/m25p80.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/hw/block/m25p80.c b/hw/block/m25p80.c
index 0af2ee4..9ea38d9 100644
--- a/hw/block/m25p80.c
+++ b/hw/block/m25p80.c
@@ -297,12 +297,14 @@ typedef enum {
PP = 0x02,
PP4 = 0x12,
+ PP4_4 = 0x3e,
DPP = 0xa2,
QPP = 0x32,
ERASE_4K = 0x20,
ERASE4_4K = 0x21,
ERASE_32K = 0x52,
+ ERASE4_32K = 0x5c,
ERASE_SECTOR = 0xd8,
ERASE4_SECTOR = 0xdc,
@@ -449,6 +451,7 @@ static void flash_erase(Flash *s, int offset, FlashCMD cmd)
capa_to_assert = ER_4K;
break;
case ERASE_32K:
+ case ERASE4_32K:
len = 32 << 10;
capa_to_assert = ER_32K;
break;
@@ -519,9 +522,11 @@ static inline int get_addr_length(Flash *s)
switch (s->cmd_in_progress) {
case PP4:
+ case PP4_4:
case READ4:
case QIOR4:
case ERASE4_4K:
+ case ERASE4_32K:
case ERASE4_SECTOR:
case FAST_READ4:
case DOR4:
@@ -555,6 +560,7 @@ static void complete_collecting_data(Flash *s)
case QPP:
case PP:
case PP4:
+ case PP4_4:
s->state = STATE_PAGE_PROGRAM;
break;
case READ:
@@ -574,6 +580,7 @@ static void complete_collecting_data(Flash *s)
case ERASE_4K:
case ERASE4_4K:
case ERASE_32K:
+ case ERASE4_32K:
case ERASE_SECTOR:
case ERASE4_SECTOR:
flash_erase(s, s->cur_addr, s->cmd_in_progress);
@@ -669,6 +676,7 @@ static void decode_new_cmd(Flash *s, uint32_t value)
case ERASE_4K:
case ERASE4_4K:
case ERASE_32K:
+ case ERASE4_32K:
case ERASE_SECTOR:
case ERASE4_SECTOR:
case READ:
@@ -677,6 +685,7 @@ static void decode_new_cmd(Flash *s, uint32_t value)
case QPP:
case PP:
case PP4:
+ case PP4_4:
s->needed_bytes = get_addr_length(s);
s->pos = 0;
s->len = 0;
--
1.9.1
- [Qemu-devel] [PULL 00/18] target-arm queue, Peter Maydell, 2016/06/27
- [Qemu-devel] [PULL 16/18] m25p80: Fast read commands family changes., Peter Maydell, 2016/06/27
- [Qemu-devel] [PULL 14/18] m25p80: Introduce quad and equad modes., Peter Maydell, 2016/06/27
- [Qemu-devel] [PULL 09/18] m25p80: Replace JEDEC ID masking with function., Peter Maydell, 2016/06/27
- [Qemu-devel] [PULL 07/18] ast2400: Integrate the SCU model and set silicon revision, Peter Maydell, 2016/06/27
- [Qemu-devel] [PULL 15/18] m25p80: Introduce configuration registers., Peter Maydell, 2016/06/27
- [Qemu-devel] [PULL 08/18] palmetto-bmc: Configure the SCU's hardware strapping register, Peter Maydell, 2016/06/27
- [Qemu-devel] [PULL 05/18] arm: Re-enable tmp105 test, Peter Maydell, 2016/06/27
- [Qemu-devel] [PULL 18/18] m25p80: Fix WINBOND fast read command handling, Peter Maydell, 2016/06/27
- [Qemu-devel] [PULL 10/18] m25p80: Make a table for JEDEC ID., Peter Maydell, 2016/06/27
- [Qemu-devel] [PULL 13/18] m25p80: Add additional flash commands:,
Peter Maydell <=
- [Qemu-devel] [PULL 12/18] m25p80: Introduce COLLECTING_VAR_LEN_DATA state., Peter Maydell, 2016/06/27
- [Qemu-devel] [PULL 04/18] cadence_gem: Set the last bit when wrap is set, Peter Maydell, 2016/06/27
- [Qemu-devel] [PULL 01/18] hw/intc/arm_gicv3: Add missing break, Peter Maydell, 2016/06/27
- [Qemu-devel] [PULL 11/18] m25p80: Allow more than four banks., Peter Maydell, 2016/06/27
- [Qemu-devel] [PULL 02/18] cadence_uart: Protect against transmit errors, Peter Maydell, 2016/06/27
- [Qemu-devel] [PULL 17/18] m25p80: New flash devices., Peter Maydell, 2016/06/27
- [Qemu-devel] [PULL 06/18] hw/misc: Add a model for the ASPEED System Control Unit, Peter Maydell, 2016/06/27
- [Qemu-devel] [PULL 03/18] cadence_gem: Avoid infinite loops with a misconfigured buffer, Peter Maydell, 2016/06/27
- Re: [Qemu-devel] [PULL 00/18] target-arm queue, Peter Maydell, 2016/06/27