@@ -168,6 +168,7 @@ typedef struct FlashPartInfo {
#define SPANSION_CONTINUOUS_READ_MODE_CMD_LEN 1
#define WINBOND_CONTINUOUS_READ_MODE_CMD_LEN 1
+#define GIGADEVICE_CONTINUOUS_READ_MODE_CMD_LEN 1
static const FlashPartInfo known_devices[] = {
/* Atmel -- some are (confusingly) marketed as "DataFlash" */
@@ -430,6 +431,7 @@ typedef enum {
MAN_WINBOND,
MAN_SST,
MAN_ISSI,
+ MAN_GIGADEVICE,
MAN_GENERIC,
} Manufacturer;
@@ -514,6 +516,8 @@ static inline Manufacturer get_man(Flash *s)
return MAN_SST;
case 0x9D:
return MAN_ISSI;
+ case 0xC8:
+ return MAN_GIGADEVICE;
default:
return MAN_GENERIC;
}
@@ -992,6 +996,9 @@ static void decode_dio_read_cmd(Flash *s)
case MAN_WINBOND:
s->needed_bytes += WINBOND_CONTINUOUS_READ_MODE_CMD_LEN;
break;
+ case MAN_GIGADEVICE:
+ s->needed_bytes += GIGADEVICE_CONTINUOUS_READ_MODE_CMD_LEN;
+ break;
case MAN_SPANSION:
s->needed_bytes += SPANSION_CONTINUOUS_READ_MODE_CMD_LEN;
s->needed_bytes += extract32(s->spansion_cr2v,
@@ -1042,6 +1049,10 @@ static void decode_qio_read_cmd(Flash *s)
s->needed_bytes += WINBOND_CONTINUOUS_READ_MODE_CMD_LEN;
s->needed_bytes += 4;
break;
+ case MAN_GIGADEVICE:
+ s->needed_bytes += GIGADEVICE_CONTINUOUS_READ_MODE_CMD_LEN;
+ s->needed_bytes += 4;
+ break;
case MAN_SPANSION:
s->needed_bytes += SPANSION_CONTINUOUS_READ_MODE_CMD_LEN;
s->needed_bytes += extract32(s->spansion_cr2v,