|
@@ -88,10 +88,11 @@ typedef struct {
|
|
|
#define SFUD_MF_ID_FUDAN 0xA1
|
|
#define SFUD_MF_ID_FUDAN 0xA1
|
|
|
#define SFUD_MF_ID_HYUNDAI 0xAD
|
|
#define SFUD_MF_ID_HYUNDAI 0xAD
|
|
|
#define SFUD_MF_ID_SST 0xBF
|
|
#define SFUD_MF_ID_SST 0xBF
|
|
|
-#define SFUD_MF_ID_MICRONIX 0xC2
|
|
|
|
|
|
|
+#define SFUD_MF_ID_MACRONIX 0xC2
|
|
|
#define SFUD_MF_ID_GIGADEVICE 0xC8
|
|
#define SFUD_MF_ID_GIGADEVICE 0xC8
|
|
|
#define SFUD_MF_ID_ISSI 0xD5
|
|
#define SFUD_MF_ID_ISSI 0xD5
|
|
|
#define SFUD_MF_ID_WINBOND 0xEF
|
|
#define SFUD_MF_ID_WINBOND 0xEF
|
|
|
|
|
+#define SFUD_MF_ID_PUYA 0x85
|
|
|
|
|
|
|
|
/* SFUD supported manufacturer information table */
|
|
/* SFUD supported manufacturer information table */
|
|
|
#define SFUD_MF_TABLE \
|
|
#define SFUD_MF_TABLE \
|
|
@@ -111,8 +112,9 @@ typedef struct {
|
|
|
{"GigaDevice", SFUD_MF_ID_GIGADEVICE}, \
|
|
{"GigaDevice", SFUD_MF_ID_GIGADEVICE}, \
|
|
|
{"ISSI", SFUD_MF_ID_ISSI}, \
|
|
{"ISSI", SFUD_MF_ID_ISSI}, \
|
|
|
{"Winbond", SFUD_MF_ID_WINBOND}, \
|
|
{"Winbond", SFUD_MF_ID_WINBOND}, \
|
|
|
- {"Micronix", SFUD_MF_ID_MICRONIX}, \
|
|
|
|
|
- {"Nor-Mem", SFUD_MF_ID_NOR_MEM}, \
|
|
|
|
|
|
|
+ {"Macronix", SFUD_MF_ID_MACRONIX}, \
|
|
|
|
|
+ {"NOR-MEM", SFUD_MF_ID_NOR_MEM}, \
|
|
|
|
|
+ {"PUYA", SFUD_MF_ID_PUYA}, \
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
#ifdef SFUD_USING_FLASH_INFO_TABLE
|
|
#ifdef SFUD_USING_FLASH_INFO_TABLE
|
|
@@ -125,6 +127,8 @@ typedef struct {
|
|
|
{ \
|
|
{ \
|
|
|
{"AT45DB161E", SFUD_MF_ID_ATMEL, 0x26, 0x00, 2L*1024L*1024L, SFUD_WM_BYTE|SFUD_WM_DUAL_BUFFER, 512, 0x81}, \
|
|
{"AT45DB161E", SFUD_MF_ID_ATMEL, 0x26, 0x00, 2L*1024L*1024L, SFUD_WM_BYTE|SFUD_WM_DUAL_BUFFER, 512, 0x81}, \
|
|
|
{"W25Q40BV", SFUD_MF_ID_WINBOND, 0x40, 0x13, 512L*1024L, SFUD_WM_PAGE_256B, 4096, 0x20}, \
|
|
{"W25Q40BV", SFUD_MF_ID_WINBOND, 0x40, 0x13, 512L*1024L, SFUD_WM_PAGE_256B, 4096, 0x20}, \
|
|
|
|
|
+ {"W25X40CL", SFUD_MF_ID_WINBOND, 0x30, 0x13, 512L*1024L, SFUD_WM_PAGE_256B, 4096, 0x20}, \
|
|
|
|
|
+ {"W25X16AV", SFUD_MF_ID_WINBOND, 0x30, 0x15, 2L*1024L*1024L, SFUD_WM_PAGE_256B, 4096, 0x20}, \
|
|
|
{"W25Q16BV", SFUD_MF_ID_WINBOND, 0x40, 0x15, 2L*1024L*1024L, SFUD_WM_PAGE_256B, 4096, 0x20}, \
|
|
{"W25Q16BV", SFUD_MF_ID_WINBOND, 0x40, 0x15, 2L*1024L*1024L, SFUD_WM_PAGE_256B, 4096, 0x20}, \
|
|
|
{"W25Q32BV", SFUD_MF_ID_WINBOND, 0x40, 0x16, 4L*1024L*1024L, SFUD_WM_PAGE_256B, 4096, 0x20}, \
|
|
{"W25Q32BV", SFUD_MF_ID_WINBOND, 0x40, 0x16, 4L*1024L*1024L, SFUD_WM_PAGE_256B, 4096, 0x20}, \
|
|
|
{"W25Q64CV", SFUD_MF_ID_WINBOND, 0x40, 0x17, 8L*1024L*1024L, SFUD_WM_PAGE_256B, 4096, 0x20}, \
|
|
{"W25Q64CV", SFUD_MF_ID_WINBOND, 0x40, 0x17, 8L*1024L*1024L, SFUD_WM_PAGE_256B, 4096, 0x20}, \
|
|
@@ -145,12 +149,17 @@ typedef struct {
|
|
|
{"A25L080", SFUD_MF_ID_AMIC, 0x30, 0x14, 1L*1024L*1024L, SFUD_WM_PAGE_256B, 4096, 0x20}, \
|
|
{"A25L080", SFUD_MF_ID_AMIC, 0x30, 0x14, 1L*1024L*1024L, SFUD_WM_PAGE_256B, 4096, 0x20}, \
|
|
|
{"F25L004", SFUD_MF_ID_ESMT, 0x20, 0x13, 512L*1024L, SFUD_WM_BYTE|SFUD_WM_AAI, 4096, 0x20}, \
|
|
{"F25L004", SFUD_MF_ID_ESMT, 0x20, 0x13, 512L*1024L, SFUD_WM_BYTE|SFUD_WM_AAI, 4096, 0x20}, \
|
|
|
{"PCT25VF016B", SFUD_MF_ID_SST, 0x25, 0x41, 2L*1024L*1024L, SFUD_WM_BYTE|SFUD_WM_AAI, 4096, 0x20}, \
|
|
{"PCT25VF016B", SFUD_MF_ID_SST, 0x25, 0x41, 2L*1024L*1024L, SFUD_WM_BYTE|SFUD_WM_AAI, 4096, 0x20}, \
|
|
|
- {"NM25Q128EV", SFUD_MF_ID_NOR_MEM, 0x21, 0x18, 16L*1024L*1024L, SFUD_WM_PAGE_256B, 4096, 0x20}, \
|
|
|
|
|
|
|
+ {"NM25Q128EVB", SFUD_MF_ID_NOR_MEM, 0x21, 0x18, 16L*1024L*1024L, SFUD_WM_PAGE_256B, 4096, 0x20}, \
|
|
|
|
|
+ {"P25D05H", SFUD_MF_ID_PUYA, 0x60, 0x13, 5L*1024L, SFUD_WM_PAGE_256B, 4096, 0x20}, \
|
|
|
|
|
+ {"P25D10H", SFUD_MF_ID_PUYA, 0x60, 0x12, 1L*1024L*1024L, SFUD_WM_PAGE_256B, 4096, 0x20}, \
|
|
|
|
|
+ {"P25D20H", SFUD_MF_ID_PUYA, 0x60, 0x11, 2L*1024L*1024L, SFUD_WM_PAGE_256B, 4096, 0x20}, \
|
|
|
|
|
+ {"P25D40H", SFUD_MF_ID_PUYA, 0x60, 0x10, 4L*1024L*1024L, SFUD_WM_PAGE_256B, 4096, 0x20}, \
|
|
|
|
|
+ {"P25Q80H", SFUD_MF_ID_PUYA, 0x30, 0x14, 8L*1024L*1024L, SFUD_WM_PAGE_256B, 4096, 0x20}, \
|
|
|
}
|
|
}
|
|
|
#endif /* SFUD_USING_FLASH_INFO_TABLE */
|
|
#endif /* SFUD_USING_FLASH_INFO_TABLE */
|
|
|
|
|
|
|
|
#ifdef SFUD_USING_QSPI
|
|
#ifdef SFUD_USING_QSPI
|
|
|
-/* This table saves flash read-fast instructions in QSPI mode,
|
|
|
|
|
|
|
+/* This table saves flash read-fast instructions in QSPI mode,
|
|
|
* SFUD can use this table to select the most appropriate read instruction for flash.
|
|
* SFUD can use this table to select the most appropriate read instruction for flash.
|
|
|
* | mf_id | type_id | capacity_id | qspi_read_mode |
|
|
* | mf_id | type_id | capacity_id | qspi_read_mode |
|
|
|
*/
|
|
*/
|
|
@@ -179,9 +188,13 @@ typedef struct {
|
|
|
/* A25LQ64 */ \
|
|
/* A25LQ64 */ \
|
|
|
{SFUD_MF_ID_AMIC, 0x40, 0x17, NORMAL_SPI_READ|DUAL_OUTPUT|DUAL_IO|QUAD_IO}, \
|
|
{SFUD_MF_ID_AMIC, 0x40, 0x17, NORMAL_SPI_READ|DUAL_OUTPUT|DUAL_IO|QUAD_IO}, \
|
|
|
/* MX25L3206E and KH25L3206E */ \
|
|
/* MX25L3206E and KH25L3206E */ \
|
|
|
- {SFUD_MF_ID_MICRONIX, 0x20, 0x16, NORMAL_SPI_READ|DUAL_OUTPUT}, \
|
|
|
|
|
|
|
+ {SFUD_MF_ID_MACRONIX, 0x20, 0x16, NORMAL_SPI_READ|DUAL_OUTPUT}, \
|
|
|
|
|
+ /* MX25L51245G */ \
|
|
|
|
|
+ {SFUD_MF_ID_MACRONIX, 0x20, 0x1A, NORMAL_SPI_READ|DUAL_OUTPUT|DUAL_IO|QUAD_OUTPUT|QUAD_IO}, \
|
|
|
/* GD25Q64B */ \
|
|
/* GD25Q64B */ \
|
|
|
{SFUD_MF_ID_GIGADEVICE, 0x40, 0x17, NORMAL_SPI_READ|DUAL_OUTPUT}, \
|
|
{SFUD_MF_ID_GIGADEVICE, 0x40, 0x17, NORMAL_SPI_READ|DUAL_OUTPUT}, \
|
|
|
|
|
+ /* NM25Q128EVB */ \
|
|
|
|
|
+ {SFUD_MF_ID_NOR_MEM, 0x21, 0x18, NORMAL_SPI_READ|DUAL_OUTPUT|DUAL_IO|QUAD_OUTPUT|QUAD_IO}, \
|
|
|
}
|
|
}
|
|
|
#endif /* SFUD_USING_QSPI */
|
|
#endif /* SFUD_USING_QSPI */
|
|
|
|
|
|