diff --git a/Linux/24Cxx_icon64.png b/Linux/24Cxx_icon64.png
new file mode 100644
index 0000000..0d61e91
Binary files /dev/null and b/Linux/24Cxx_icon64.png differ
diff --git a/Linux/SNANDer b/Linux/SNANDer
index e976aa1..4994d6b 100755
Binary files a/Linux/SNANDer and b/Linux/SNANDer differ
diff --git a/Linux/SNANDer.desktop b/Linux/SNANDer.desktop
new file mode 100644
index 0000000..e8a392a
--- /dev/null
+++ b/Linux/SNANDer.desktop
@@ -0,0 +1,13 @@
+[Desktop Entry]
+Name=SNANDer
+Name[ru]=Программатор SNANDer
+Comment=24xx/25xx programming tool for the CH341A USB-programmer
+Comment[ru]=Программатор микросхем 24xx/25xx для CH341A USB-programmer
+Exec=/home/<путь до snander.sh>/snander.sh
+Type=Application
+Terminal=true
+StartupNotify=true
+Path=/home/<путь до snander.sh>/
+Icon=/home/<путь до snander.sh>/24Cxx_icon64.png
+Encoding=UTF-8
+Categories=Application;Development;
diff --git a/Linux/snander.sh b/Linux/snander.sh
new file mode 100644
index 0000000..10310a1
--- /dev/null
+++ b/Linux/snander.sh
@@ -0,0 +1,173 @@
+#!/bin/bash
+mode=""
+t1="24Cxx - Two-Wire Serial EEPROM"
+t2="93Cxx - MICROWIRE Serial EEPROM"
+ch_dev=$(lsusb | grep "1a86:" -o)
+echo $ch_dev
+if [[ "$ch_dev" == "1a86:" ]]
+then
+epromtype=$(zenity --height=320 --width=320 --list --radiolist --text \
+"Выберите тип EEPROM:" --column="Set" --column="Тип микросхемы"\
+ FALSE "24Cxx - Two-Wire Serial EEPROM"\
+ FALSE "93Cxx - MICROWIRE Serial EEPROM"\
+ FALSE "25Cxx - NAND FLASH EEPROM"\
+ FALSE "25Qxx - NOR FLASH EEPROM")
+ if [ -n "$epromtype" ]
+ then
+ if [[ "$epromtype" == "24Cxx - Two-Wire Serial EEPROM" ]]
+ then
+ echo "24Cxx selected"
+ eeprom_model=$(zenity --height=330 --width=320 --list --radiolist --text \
+"24Cxx - Two-Wire Serial EEPROM:" --column="Set" --column="Модель микросхемы"\
+ TRUE "24c01"\
+ FALSE "24c02"\
+ FALSE "24c04"\
+ FALSE "24c16"\
+ FALSE "24c32"\
+ FALSE "24c64"\
+ FALSE "24c128"\
+ FALSE "24c256"\
+ FALSE "24c512"\ )
+ fi
+ if [[ "$epromtype" == "93Cxx - MICROWIRE Serial EEPROM" ]]
+ then
+ echo "93Cxx selected"
+ eeprom_model=$(zenity --height=320 --width=320 --list --radiolist --text \
+"93Cxx - Microwire EEPROM:" --column="Set" --column="Модель микросхемы"\
+ TRUE "93c06"\
+ FALSE "93c16"\
+ FALSE "93c46"\
+ FALSE "93c56"\
+ FALSE "93c66"\
+ FALSE "93c76"\
+ FALSE "93c86"\
+ FALSE "93c96"\ )
+ fi
+ if [ "$epromtype" == "25Cxx - NAND FLASH EEPROM" ] || [ "$epromtype" == "25Qxx - NOR FLASH EEPROM" ]
+ then
+ echo "NOR or NAND selected"
+ manufacture='Производитель: '
+ info=$(SNANDer -i)
+ if [[ $info == *"id: 7f"* ]]
+ then
+ zenity --warning \
+ --text="Пожалуйста подключите адаптер на 1,8 вольт!"
+ fi
+ man_code=$(echo "$info" | grep 'spi device id:')
+ dev_vcc=$(echo "$info" | grep 'VCC:')
+ if [[ $man_code == *"spi device id:"* ]]
+ then
+ if [[ $man_code == *"id: 01"* ]]; then man_name="SPANSION"; fi
+ if [[ $man_code == *"id: 0b"* ]]; then man_name="XTX"; fi
+ if [[ $man_code == *"id: 1c"* ]]; then man_name="Eon"; fi
+ if [[ $man_code == *"id: 1f"* ]]; then man_name="Atmel"; fi
+ if [[ $man_code == *"id: 20"* ]]; then man_name="Micron"; fi
+ if [[ $man_code == *"id: 5e"* ]]; then man_name="Zbit"; fi
+ if [[ $man_code == *"id: 68"* ]]; then man_name="Boya"; fi
+ if [[ $man_code == *"id: 7f"* ]]; then man_name="ISSI"; fi
+ if [[ $man_code == *"id: 85"* ]]; then man_name="PUYA"; fi
+ if [[ $man_code == *"id: 9d"* ]]; then man_name="ISSI"; fi
+ if [[ $man_code == *"id: a1"* ]]; then man_name="Fudan"; fi
+ if [[ $man_code == *"id: ba"* ]]; then man_name="Zetta"; fi
+ if [[ $man_code == *"id: c2"* ]]; then man_name="MXIC (Macronix)"; fi
+ if [[ $man_code == *"id: c8"* ]]; then man_name="GigaDevice"; fi
+ if [[ $man_code == *"id: e0"* ]]; then man_name="PARAGON"; fi
+ if [[ $man_code == *"id: ef"* ]]; then man_name="Winbond"; fi
+ if [[ $man_code == *"id: f8"* ]]; then man_name="Fidelix"; fi
+ else manufacture="Производитель не найден."
+ fi;
+ manufacture="${manufacture}${man_name}"
+ info=$(echo "$info" | grep 'Flash:')
+ rufirst="Найдена микросхема "
+ rusecond="Объем: "
+ ruvcc="Напряжение питания:"
+ dev_vcc=${dev_vcc/'VCC:'/"$ruvcc "}
+ ruinfo=${info/'Detected '/"\n$rufirst"}
+ ruinfo=${ruinfo/'Flash Size:'/"\n$rusecond"}
+ ruinfo=${ruinfo/'[93m'/""}
+ ruinfo=${ruinfo/'[93m'/""}
+ ruinfo=${ruinfo/'[0m'/""}
+ ruinfo=${ruinfo/'[0m'/""}
+ ruinfo="${ruinfo} \n${manufacture}\n${dev_vcc}"
+ fi
+ action_type=$(zenity --height=340 --width=320 --list --radiolist --text \
+"Выберите действие:" --column="Set" --column="Действие"\
+ TRUE "Считать"\
+ FALSE "Записать"\
+ FALSE "Записать/проверить"\
+ FALSE "Стереть" )
+ if [[ "$action_type" == "Записать/проверить" ]] ; then mode="-v"; else mode=""; fi
+ if [[ "$action_type" == "Считать" ]]
+ then
+ zenity --warning --width=320 \
+--text="Выберите каталог для сохранения файла"
+ filepath=$(zenity --file-selection --directory)
+ filename=$(zenity --entry \
+--title="Введите имя файла" \
+--text="Имя файла для сохранения:" \
+--entry-text "eeprom.bin")
+ if [ -n "$eeprom_model" ]
+ then
+ SNANDer -E$eeprom_model -r $filepath/$filename | tee >(zenity --width=200 --height=100 \
+ --title="Считывание" --progress \
+ --pulsate --text="Подождите, процесс выполняется..." \
+ --no-cancel --auto-close \
+ --percentage=10)
+ else
+ SNANDer -r $filepath/$filename | tee >(zenity --width=320 --height=100 \
+ --title="Считывание" --progress \
+ --pulsate --text="$ruinfo\n\nПодождите, процесс выполняется..." \
+ --no-cancel --auto-close \
+ --percentage=10)
+ fi
+ fi
+ if [ "$action_type" == "Записать" ] || [ "$action_type" == "Записать/проверить" ]
+ then
+ zenity --warning \
+--text="Выберите файл для записи микросхемы"
+ filename=$(zenity --file-selection)
+ if [ -n "$eeprom_model" ]
+ then
+ SNANDer -E$eeprom_model -w $filename $mode| tee >(zenity --width=200 --height=100 \
+ --title="Запись" --progress \
+ --pulsate --text="Подождите, процесс выполняется..." \
+ --no-cancel --auto-close \
+ --percentage=10)
+ else
+ SNANDer -w $filename $mode| tee >(zenity --width=320 --height=100 \
+ --title="Запись" --progress \
+ --pulsate --text="$ruinfo\n\nПодождите, процесс выполняется..." \
+ --no-cancel --auto-close \
+ --percentage=10)
+ fi
+ fi
+ if [[ "$action_type" == "Стереть" ]]
+ then
+ if [ -n "$eeprom_model" ]
+ then
+ SNANDer -E$eeprom_model -e | tee >(zenity --width=200 --height=100 \
+ --title="Стирание" --progress \
+ --pulsate --text="Подождите, процесс выполняется..." \
+ --no-cancel --auto-close \
+ --percentage=10)
+ else
+ SNANDer -e | tee >(zenity --width=320 --height=100 \
+ --title="Стирание" --progress \
+ --pulsate --text="$ruinfo\n\nПодождите, процесс выполняется..." \
+ --no-cancel --auto-close \
+ --percentage=10)
+ fi
+ fi
+ zenity --warning \
+--text="Готово" \
+--icon-name='applications-electronics'
+ else
+ echo "Микросхема не выбрана"
+ zenity --error \
+--text="Микросхема не выбрана"
+ fi
+ else
+ zenity --error \
+--text="Программатор CH341A не подключен!"
+ fi
+
diff --git a/Programmer_photos/1_8_volts_adapter.png b/Programmer_photos/1_8_volts_adapter.png
new file mode 100644
index 0000000..d5f23b0
Binary files /dev/null and b/Programmer_photos/1_8_volts_adapter.png differ
diff --git a/flash_support_list.txt b/flash_support_list.txt
index 33020f1..e1704b1 100644
--- a/flash_support_list.txt
+++ b/flash_support_list.txt
@@ -84,124 +84,204 @@ SPI NAND Flash Support List:
080. TYM TYM25D1GA03
SPI NOR Flash Support List:
-001. AT25DF321
-002. AT26DF161
+001. AT26DF161
+002. AT25DF321
003. F25L016
004. F25L16QA
005. F25L032
006. F25L32QA
007. F25L064
008. F25L64QA
-009. GD25Q16
-010. GD25Q32
-011. GD25Q64CSIG
-012. GD25Q128CSIG
-013. YC25Q128
-014. GD25Q256CSIG
-015. MX25L8005M
-016. MX25L1605D
-017. MX25L3205D
-018. MX25L6405D
-019. MX25L12805D
-020. MX25L25635E
-021. MX25L51245G
-022. FL016AIF
-023. FL064AIF
-024. S25FL032P
-025. S25FL064P
-026. S25FL128P
-027. S25FL129P
-028. S25FL256S
-029. S25FL116K
-030. S25FL132K
-031. S25FL164K
-032. EN25F16
-033. EN25Q16
-034. EN25QH16
-035. EN25Q32B
-036. EN25F32
-037. EN25F64
-038. EN25Q64
-039. EN25QA64A
-040. EN25QH64A
-041. EN25Q128
-042. EN25Q256
-043. EN25QA128A
-044. EN25QH128A
-045. W25X05
-046. W25X10
-047. W25X20
-048. W25X40
-049. W25X80
-050. W25X16
-051. W25X32VS
-052. W25X64
-053. W25Q20CL
-054. W25Q20BW
-055. W25Q20EW
-056. W25Q80
-057. W25Q80BL
-058. W25Q16JQ
-059. W25Q16JM
-060. W25Q32BV
-061. W25Q32DW
-062. W25Q64BV
-063. W25Q64DW
-064. W25Q128BV
-065. W25Q128FW
-066. W25Q256FV
-067. W25Q512JV
-068. M25P016
-069. N25Q032A
-070. N25Q064A
-071. M25P128
-072. N25Q128A
-073. XM25QH32B
-074. XM25QH32A
-075. XM25QH64A
-076. XM25QH128A
-077. N25Q256A
-078. MT25QL512AB
-079. ZB25VQ16
-080. ZB25VQ32
-081. ZB25VQ64
-082. ZB25VQ128
-083. BY25Q16BS
-084. BY25Q32BS
-085. BY25Q64AS
-086. BY25Q128AS
-087. XT25F32B
-088. XT25F32B
-089. XT25F64B
-090. XT25F128B
-091. PM25LQ016
-092. PM25LQ032
-093. PM25LQ064
-094. PM25LQ128
-095. IC25LP016
-096. IC25LP032
-097. IC25LP064
-098. IC25LP128
-099. FS25Q016
-100. FS25Q032
-101. FS25Q064
-102. FS25Q128
-103. FM25W16
-104. FM25W32
-105. FM25W64
-106. FM25W128
-107. FM25Q16A
-108. FM25Q32A
-109. FM25Q64A
-110. FM25Q128A
-111. PN25F16
-112. PN25F32
-113. PN25F64
-114. PN25F128
-115. P25Q16H
-116. P25Q32H
-117. P25Q64H
-118. P25Q128H
+009. GD25Q20C
+010. GD25Q40C
+011. GD25Q80C
+012. GD25LQ80C
+013. GD25WD80C
+014. GD25WQ80E
+015. GD25Q16
+016. GD25LQ16C
+017. GD25WQ16E
+018. GD25Q32
+019. GD25LQ32E
+020. GD25WQ32E
+021. GD25Q64CSIG
+022. GD25Q128CSIG
+023. YC25Q128
+024. GD25Q256CSIG
+025. MX25L8005M
+026. MX25L1605D
+027. MX25L3205D
+028. MX25L6405D
+029. MX25L12805D
+030. MX25L25635E
+031. MX25L51245G
+032. FL016AIF
+033. FL064AIF
+034. S25FL116K
+035. S25FL016P
+036. S25FL032P
+037. S25FL132K
+038. S25FL064P
+039. S25FL164K
+040. S25FL128P
+041. S25FL129P
+042. S25FL256S
+043. EN25F16
+044. EN25Q16
+045. EN25QH16
+046. EN25Q32B
+047. EN25F32
+048. EN25F64
+049. EN25Q64
+050. EN25QA64A
+051. EN25QH64A
+052. EN25Q128
+053. EN25QA128A
+054. EN25QH128A
+055. EN25Q256
+056. W25X05
+057. W25X10
+058. W25X20
+059. W25Q20CL
+060. W25Q20BW
+061. W25Q20EW
+062. W25X40
+063. W25X80
+064. W25Q80
+065. W25Q80BL
+066. W25X16
+067. W25Q16JQ
+068. W25Q16JM
+069. W25X32VS
+070. W25Q32BV
+071. W25Q32FW
+072. W25Q32JW
+073. W25Q64BV
+074. W25Q64DW
+075. W25X64
+076. W25Q128BV
+077. W25Q128FW
+078. W25Q256FV
+079. W25Q512JV
+080. M25P016
+081. M25P128
+082. N25Q032A
+083. N25Q032A
+084. N25Q064A
+085. N25Q064A
+086. N25Q128A
+087. N25Q128A
+088. N25Q256A
+089. MT25QL64AB
+090. MT25QU64AB
+091. MT25QL128AB
+092. MT25QU128AB
+093. MT25QL256AB
+094. MT25QU256AB
+095. MT25QL512AB
+096. MT25QU512AB
+097. XM25QH10B
+098. XM25QH20B
+099. XM25QU41B
+100. XM25QH40B
+101. XM25QU80B
+102. XM25QH80B
+103. XM25QU16B
+104. XM25QH16C
+105. XM25QW16C
+106. XM25QH32B
+107. XM25QW32C
+108. XM25LU32C
+109. XM25QH32A
+110. XM25QH64C
+111. XM25LU64C
+112. XM25QW64C
+113. XM25QH64A
+114. XM25QH128A
+115. XM25QH128C
+116. XM25LU128C
+117. XM25QW128C
+118. XM25QH256C
+119. XM25QU256C
+120. XM25QW256C
+121. XM25QH512C
+122. XM25QU512C
+123. XM25QW512C
+124. ZB25VQ16
+125. ZB25LQ16
+126. ZB25VQ32
+127. ZB25LQ32
+128. ZB25VQ64
+129. ZB25LQ64
+130. ZB25VQ128
+131. ZB25LQ128
+132. BY25D40AS
+133. BY25Q40BL
+134. BY25Q40BL
+135. BY25Q80BS
+136. BY25Q16BS
+137. BY25Q16BL
+138. BY25Q32BS
+139. BY25Q32AL
+140. BY25Q64AS
+141. BY25Q64AL
+142. BY25Q128AS
+143. BY25Q128EL
+144. BY25Q256ES
+145. XT25F04D
+146. XT25F08B
+147. XT25F08D
+148. XT25F16B
+149. XT25Q16D
+150. XT25F32B
+151. XT25F64B
+152. XT25Q64D
+153. XT25F128B
+154. XT25F128D
+155. PM25LQ016
+156. PM25LQ032
+157. PM25LQ064
+158. PM25LQ128
+159. IS25WP040D
+160. IS25LP080D
+161. IS25WP080D
+162. IS25LP016D
+163. IS25WP016D
+164. IS25LP032D
+165. IS25WP032D
+166. IS25LP064D
+167. IS25WP064D
+168. IS25LP128F
+169. IS25WP128F
+170. FM25W04
+171. FM25Q04
+172. FM25Q08
+173. FM25W16
+174. FM25Q16
+175. FM25W32
+176. FS25Q32
+177. FM25W64
+178. FS25Q64
+179. FM25W128
+180. FS25Q128
+181. FM25Q16A
+182. FM25Q32A
+183. FM25M32B
+184. FM25Q64A
+185. FM25Q128A
+186. PN25F16
+187. PN25F32
+188. PN25F64
+189. PN25F128
+190. P25Q16H
+191. P25Q32H
+192. P25Q64H
+193. P25Q128H
+194. ZD25Q16B
+195. ZD25Q32C
+196. ZD25LQ64
+197. ZD25Q64B
+198. ZD25LQ128
I2C EEPROM Support List:
001. 24c01
diff --git a/src/spi_nor_flash.c b/src/spi_nor_flash.c
index bedee51..632eeab 100644
--- a/src/spi_nor_flash.c
+++ b/src/spi_nor_flash.c
@@ -1,7 +1,7 @@
/*
* Copyright (C) 2018-2021 McMCC
* spi_nor_flash.c
- *
+ * Adding power supply voltage by Mikhail Medvedev
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
@@ -84,6 +84,8 @@ struct chip_info {
unsigned long sector_size;
unsigned int n_sectors;
char addr4b;
+ float vcc_min;
+ float vcc_max;
};
struct chip_info *spi_chip_info;
@@ -296,143 +298,418 @@ static int full_erase_chip(void)
}
static struct chip_info chips_data [] = {
+//Please instert this text in file spi_nor_flash.c (replace old table) and recompile the program
/* REVISIT: fill in JEDEC ids, for parts that have them */
- { "AT25DF321", 0x1f, 0x47000000, 64 * 1024, 64, 0 },
- { "AT26DF161", 0x1f, 0x46000000, 64 * 1024, 32, 0 },
-
- { "F25L016", 0x8c, 0x21150000, 64 * 1024, 32, 0 }, //ESMT
- { "F25L16QA", 0x8c, 0x41158c41, 64 * 1024, 32, 0 },
- { "F25L032", 0x8c, 0x21160000, 64 * 1024, 64, 0 },
- { "F25L32QA", 0x8c, 0x41168c41, 64 * 1024, 64, 0 },
- { "F25L064", 0x8c, 0x21170000, 64 * 1024, 128, 0 },
- { "F25L64QA", 0x8c, 0x41170000, 64 * 1024, 128, 0 },
-
- { "GD25Q16", 0xc8, 0x40150000, 64 * 1024, 32, 0 },
- { "GD25Q32", 0xc8, 0x40160000, 64 * 1024, 64, 0 },
- { "GD25Q64CSIG", 0xc8, 0x4017c840, 64 * 1024, 128, 0 },
- { "GD25Q128CSIG", 0xc8, 0x4018c840, 64 * 1024, 256, 0 },
- { "YC25Q128", 0xd8, 0x4018d840, 64 * 1024, 256, 0 },
- { "GD25Q256CSIG", 0xc8, 0x4019c840, 64 * 1024, 512, 1 },
-
- { "MX25L8005M", 0xc2, 0x2014c220, 64 * 1024, 16, 0 },
- { "MX25L1605D", 0xc2, 0x2015c220, 64 * 1024, 32, 0 },
- { "MX25L3205D", 0xc2, 0x2016c220, 64 * 1024, 64, 0 },
- { "MX25L6405D", 0xc2, 0x2017c220, 64 * 1024, 128, 0 },
- { "MX25L12805D", 0xc2, 0x2018c220, 64 * 1024, 256, 0 },
- { "MX25L25635E", 0xc2, 0x2019c220, 64 * 1024, 512, 1 },
- { "MX25L51245G", 0xc2, 0x201ac220, 64 * 1024, 1024, 1 },
-
- { "FL016AIF", 0x01, 0x02140000, 64 * 1024, 32, 0 },
- { "FL064AIF", 0x01, 0x02160000, 64 * 1024, 128, 0 },
- { "S25FL016P", 0x01, 0x02144D00, 64 * 1024, 32, 0 },
- { "S25FL032P", 0x01, 0x02154D00, 64 * 1024, 64, 0 },
- { "S25FL064P", 0x01, 0x02164D00, 64 * 1024, 128, 0 },
- { "S25FL128P", 0x01, 0x20180301, 64 * 1024, 256, 0 },
- { "S25FL129P", 0x01, 0x20184D01, 64 * 1024, 256, 0 },
- { "S25FL256S", 0x01, 0x02194D01, 64 * 1024, 512, 1 },
- { "S25FL116K", 0x01, 0x40150140, 64 * 1024, 32, 0 },
- { "S25FL132K", 0x01, 0x40160140, 64 * 1024, 64, 0 },
- { "S25FL164K", 0x01, 0x40170140, 64 * 1024, 128, 0 },
-
- { "EN25F16", 0x1c, 0x31151c31, 64 * 1024, 32, 0 },
- { "EN25Q16", 0x1c, 0x30151c30, 64 * 1024, 32, 0 },
- { "EN25QH16", 0x1c, 0x70151c70, 64 * 1024, 32, 0 },
- { "EN25Q32B", 0x1c, 0x30161c30, 64 * 1024, 64, 0 },
- { "EN25F32", 0x1c, 0x31161c31, 64 * 1024, 64, 0 },
- { "EN25F64", 0x1c, 0x20171c20, 64 * 1024, 128, 0 },
- { "EN25Q64", 0x1c, 0x30171c30, 64 * 1024, 128, 0 },
- { "EN25QA64A", 0x1c, 0x60170000, 64 * 1024, 128, 0 },
- { "EN25QH64A", 0x1c, 0x70171c70, 64 * 1024, 128, 0 },
- { "EN25Q128", 0x1c, 0x30181c30, 64 * 1024, 256, 0 },
- { "EN25Q256", 0x1c, 0x70191c70, 64 * 1024, 512, 1 },
- { "EN25QA128A", 0x1c, 0x60180000, 64 * 1024, 256, 0 },
- { "EN25QH128A", 0x1c, 0x70181c70, 64 * 1024, 256, 0 },
-
- { "W25X05", 0xef, 0x30100000, 64 * 1024, 1, 0 },
- { "W25X10", 0xef, 0x30110000, 64 * 1024, 2, 0 },
- { "W25X20", 0xef, 0x30120000, 64 * 1024, 4, 0 },
- { "W25X40", 0xef, 0x30130000, 64 * 1024, 8, 0 },
- { "W25X80", 0xef, 0x30140000, 64 * 1024, 16, 0 },
- { "W25X16", 0xef, 0x30150000, 64 * 1024, 32, 0 },
- { "W25X32VS", 0xef, 0x30160000, 64 * 1024, 64, 0 },
- { "W25X64", 0xef, 0x30170000, 64 * 1024, 128, 0 },
- { "W25Q20CL", 0xef, 0x40120000, 64 * 1024, 4, 0 },
- { "W25Q20BW", 0xef, 0x50120000, 64 * 1024, 4, 0 },
- { "W25Q20EW", 0xef, 0x60120000, 64 * 1024, 4, 0 },
- { "W25Q80", 0xef, 0x50140000, 64 * 1024, 16, 0 },
- { "W25Q80BL", 0xef, 0x40140000, 64 * 1024, 16, 0 },
- { "W25Q16JQ", 0xef, 0x40150000, 64 * 1024, 32, 0 },
- { "W25Q16JM", 0xef, 0x70150000, 64 * 1024, 32, 0 },
- { "W25Q32BV", 0xef, 0x40160000, 64 * 1024, 64, 0 },
- { "W25Q32DW", 0xef, 0x60160000, 64 * 1024, 64, 0 },
- { "W25Q64BV", 0xef, 0x40170000, 64 * 1024, 128, 0 },
- { "W25Q64DW", 0xef, 0x60170000, 64 * 1024, 128, 0 },
- { "W25Q128BV", 0xef, 0x40180000, 64 * 1024, 256, 0 },
- { "W25Q128FW", 0xef, 0x60180000, 64 * 1024, 256, 0 },
- { "W25Q256FV", 0xef, 0x40190000, 64 * 1024, 512, 1 },
- { "W25Q512JV", 0xef, 0x71190000, 64 * 1024, 1024, 1 },
-
- { "M25P016", 0x20, 0x20150000, 64 * 1024, 32, 0 },
- { "N25Q032A", 0x20, 0xba161000, 64 * 1024, 64, 0 },
- { "N25Q064A", 0x20, 0xba171000, 64 * 1024, 128, 0 },
- { "M25P128", 0x20, 0x20180000, 64 * 1024, 256, 0 },
- { "N25Q128A", 0x20, 0xba181000, 64 * 1024, 256, 0 },
- { "XM25QH32B", 0x20, 0x40160000, 64 * 1024, 64, 0 },
- { "XM25QH32A", 0x20, 0x70160000, 64 * 1024, 64, 0 },
- { "XM25QH64A", 0x20, 0x70170000, 64 * 1024, 128, 0 },
- { "XM25QH128A", 0x20, 0x70182070, 64 * 1024, 256, 0 },
- { "N25Q256A", 0x20, 0xba191000, 64 * 1024, 512, 1 },
- { "MT25QL512AB", 0x20, 0xba201044, 64 * 1024, 1024, 1 },
-
- { "ZB25VQ16", 0x5e, 0x40150000, 64 * 1024, 32, 0 },
- { "ZB25VQ32", 0x5e, 0x40160000, 64 * 1024, 64, 0 },
- { "ZB25VQ64", 0x5e, 0x40170000, 64 * 1024, 128, 0 },
- { "ZB25VQ128", 0x5e, 0x40180000, 64 * 1024, 256, 0 },
-
- { "BY25Q16BS", 0x68, 0x40150000, 64 * 1024, 32, 0 },
- { "BY25Q32BS", 0x68, 0x40160000, 64 * 1024, 64, 0 },
- { "BY25Q64AS", 0x68, 0x40170000, 64 * 1024, 128, 0 },
- { "BY25Q128AS", 0x68, 0x40180000, 64 * 1024, 256, 0 },
-
- { "XT25F32B", 0x0b, 0x40150000, 64 * 1024, 32, 0 },
- { "XT25F32B", 0x0b, 0x40160000, 64 * 1024, 64, 0 },
- { "XT25F64B", 0x0b, 0x40170000, 64 * 1024, 128, 0 },
- { "XT25F128B", 0x0b, 0x40180000, 64 * 1024, 256, 0 },
- { "XT25Q128D", 0x0b, 0x60180000, 64 * 1024, 256, 0 },
-
- { "PM25LQ016", 0x7f, 0x9d450000, 64 * 1024, 32, 0 },
- { "PM25LQ032", 0x7f, 0x9d460000, 64 * 1024, 64, 0 },
- { "PM25LQ064", 0x7f, 0x9d470000, 64 * 1024, 128, 0 },
- { "PM25LQ128", 0x7f, 0x9d480000, 64 * 1024, 256, 0 },
-
- { "IC25LP016", 0x9d, 0x60150000, 64 * 1024, 32, 0 },
- { "IC25LP032", 0x9d, 0x60160000, 64 * 1024, 64, 0 },
- { "IC25LP064", 0x9d, 0x60170000, 64 * 1024, 128, 0 },
- { "IC25LP128", 0x9d, 0x60180000, 64 * 1024, 256, 0 },
-
- { "FS25Q016", 0xa1, 0x40150000, 64 * 1024, 32, 0 },
- { "FS25Q032", 0xa1, 0x40160000, 64 * 1024, 64, 0 },
- { "FS25Q064", 0xa1, 0x40170000, 64 * 1024, 128, 0 },
- { "FS25Q128", 0xa1, 0x40180000, 64 * 1024, 256, 0 },
- { "FM25W16", 0xa1, 0x28150000, 64 * 1024, 32, 0 },
- { "FM25W32", 0xa1, 0x28160000, 64 * 1024, 64, 0 },
- { "FM25W64", 0xa1, 0x28170000, 64 * 1024, 128, 0 },
- { "FM25W128", 0xa1, 0x28180000, 64 * 1024, 256, 0 },
-
- { "FM25Q16A", 0xf8, 0x32150000, 64 * 1024, 32, 0 },
- { "FM25Q32A", 0xf8, 0x32160000, 64 * 1024, 64, 0 },
- { "FM25Q64A", 0xf8, 0x32170000, 64 * 1024, 128, 0 },
- { "FM25Q128A", 0xf8, 0x32180000, 64 * 1024, 256, 0 },
-
- { "PN25F16", 0xe0, 0x40150000, 64 * 1024, 32, 0 },
- { "PN25F32", 0xe0, 0x40160000, 64 * 1024, 64, 0 },
- { "PN25F64", 0xe0, 0x40170000, 64 * 1024, 128, 0 },
- { "PN25F128", 0xe0, 0x40180000, 64 * 1024, 256, 0 },
-
- { "P25Q16H", 0x85, 0x60150000, 64 * 1024, 32, 0 },
- { "P25Q32H", 0x85, 0x60160000, 64 * 1024, 64, 0 },
- { "P25Q64H", 0x85, 0x60170000, 64 * 1024, 128, 0 },
- { "P25Q128H", 0x85, 0x60180000, 64 * 1024, 256, 0 },
+// NAME MANUF.ID CHIP ID BL.SIZE BLOCKS MODE
+// SPI_FLASH SPANSION --> https://uk.farnell.com/w/c/semiconductors-ics/memory/flash?ic-interface-type=spi
+ { "FL016AIF", 0x01, 0x02140000, 64 * 1024, 32, 0, 2.70, 3.60 },
+ { "S25FL016P", 0x01, 0x02144d00, 64 * 1024, 32, 0, 2.70, 3.60 },
+ { "S25FL032P", 0x01, 0x02154d00, 64 * 1024, 64, 0, 2.70, 3.60 },
+ { "FL064AIF", 0x01, 0x02160000, 64 * 1024, 128, 0, 2.70, 3.60 },
+ { "S25FL064P", 0x01, 0x02164d00, 64 * 1024, 128, 0, 2.70, 3.60 },
+ { "S25FL256S", 0x01, 0x02194d01, 64 * 1024, 512, 1, 2.70, 3.60 },
+ { "S25FL128P", 0x01, 0x20180301, 64 * 1024, 256, 0, 2.70, 3.60 },
+ { "S25FL129P", 0x01, 0x20184d01, 64 * 1024, 256, 0, 2.70, 3.60 },
+ { "S25FL116K", 0x01, 0x40150140, 64 * 1024, 32, 0, 2.70, 3.60 },
+ { "S25FL132K", 0x01, 0x40160140, 64 * 1024, 64, 0, 2.70, 3.60 },
+ { "S25FL164K", 0x01, 0x40170140, 64 * 1024, 128, 0, 2.70, 3.60 },
+// SPI_FLASH XTX --> http://www.xtxtech.com/products_detail/1/ProId-1/
+ { "XT25F02E", 0x0b, 0x40120000, 64 * 1024, 4, 0, 2.70, 3.60 },
+ { "XT25F04D", 0x0b, 0x40130000, 64 * 1024, 8, 0, 2.70, 3.60 },
+ { "XT25F08B", 0x0b, 0x40140000, 64 * 1024, 16, 0, 2.70, 3.60 },
+ { "XT25F16B", 0x0b, 0x40150000, 64 * 1024, 32, 0, 2.70, 3.60 },
+ { "XT25F32F", 0x0b, 0x40160000, 64 * 1024, 64, 0, 2.70, 3.60 },
+ { "XT25F64F", 0x0b, 0x40170000, 64 * 1024, 128, 0, 2.70, 3.60 },
+ { "XT25F128F", 0x0b, 0x40180000, 64 * 1024, 256, 0, 2.70, 3.60 },
+ { "XT25W02E", 0x0b, 0x60120000, 64 * 1024, 4, 0, 1.65, 3.60 },
+ { "XT25W04D", 0x0b, 0x60130000, 64 * 1024, 8, 0, 1.65, 3.60 },
+ { "XT25Q08D", 0x0b, 0x60140000, 64 * 1024, 16, 0, 1.65, 2.00 },
+ { "XT25Q16D", 0x0b, 0x60150000, 64 * 1024, 32, 0, 1.65, 2.00 },
+ { "XT25Q64D", 0x0b, 0x60170000, 64 * 1024, 128, 0, 1.65, 2.00 },
+ { "XT25F128D", 0x0b, 0x60180000, 64 * 1024, 256, 0, 1.65, 2.00 },
+// SPI_FLASH EON --> https://esmt.com.tw/en/Products/Flash/SPI%20NOR-2-8#8Mb
+ { "EN25B10T", 0x1c, 0x20110000, 64 * 1024, 2, 0, 2.70, 3.60 },
+ { "EN25B20T", 0x1c, 0x20120000, 64 * 1024, 4, 0, 2.70, 3.60 },
+ { "EN25B40T", 0x1c, 0x20130000, 64 * 1024, 8, 0, 2.70, 3.60 },
+ { "EN25B80T", 0x1c, 0x20140000, 64 * 1024, 16, 0, 2.70, 3.60 },
+ { "EN25B16T", 0x1c, 0x20150000, 64 * 1024, 32, 0, 2.70, 3.60 },
+ { "EN25B32T", 0x1c, 0x20160000, 64 * 1024, 64, 0, 2.70, 3.60 },
+ { "EN25B64T", 0x1c, 0x20170000, 64 * 1024, 128, 0, 2.70, 3.60 },
+ { "EN25F64", 0x1c, 0x20171c20, 64 * 1024, 128, 0, 2.70, 3.60 },
+ { "EN25Q40A", 0x1c, 0x30130000, 64 * 1024, 8, 0, 2.70, 3.60 },
+ { "EN25Q80B", 0x1c, 0x30140000, 64 * 1024, 16, 0, 2.70, 3.60 },
+ { "EN25Q16", 0x1c, 0x30151c30, 64 * 1024, 32, 0, 2.70, 3.60 },
+ { "EN25Q32C", 0x1c, 0x30160000, 64 * 1024, 64, 0, 2.70, 3.60 },
+ { "EN25Q64", 0x1c, 0x30170000, 64 * 1024, 128, 0, 2.70, 3.60 },
+ { "EN25Q128", 0x1c, 0x30181c30, 64 * 1024, 256, 0, 2.70, 3.60 },
+ { "EN25F10A", 0x1c, 0x31110000, 64 * 1024, 2, 0, 2.70, 3.60 },
+ { "EN25F20A", 0x1c, 0x31120000, 64 * 1024, 4, 0, 2.70, 3.60 },
+ { "EN25F40", 0x1c, 0x31130000, 64 * 1024, 8, 0, 2.70, 3.60 },
+ { "EN25F80", 0x1c, 0x31140000, 64 * 1024, 16, 0, 2.70, 3.60 },
+ { "EN25F16", 0x1c, 0x31151c31, 64 * 1024, 32, 0, 2.70, 3.60 },
+ { "EN25F32", 0x1c, 0x31161c30, 64 * 1024, 64, 0, 2.70, 3.60 },
+ { "EN25S10A", 0x1c, 0x38110000, 64 * 1024, 2, 0, 1.65, 1.95 },
+ { "EN25S20A", 0x1c, 0x38120000, 64 * 1024, 4, 0, 1.65, 1.95 },
+ { "EN25S40A", 0x1c, 0x38130000, 64 * 1024, 8, 0, 1.65, 1.95 },
+ { "EN25S80B", 0x1c, 0x38140000, 64 * 1024, 16, 0, 1.65, 1.95 },
+ { "EN25S16B", 0x1c, 0x38150000, 64 * 1024, 32, 0, 1.65, 1.95 },
+ { "EN25S64A", 0x1c, 0x38170000, 64 * 1024, 128, 0, 1.65, 1.95 },
+ { "EN25QE32A", 0x1c, 0x41160000, 64 * 1024, 64, 0, 2.70, 3.60 },
+ { "EN25E10A", 0x1c, 0x42110000, 64 * 1024, 2, 0, 2.70, 3.60 },
+ { "EN25E40A", 0x1c, 0x42130000, 64 * 1024, 4, 0, 2.70, 3.60 },
+ { "EN25SE16A", 0x1c, 0x48150000, 64 * 1024, 32, 0, 1.65, 1.95 },
+ { "EN25SE32A", 0x1c, 0x48160000, 64 * 1024, 64, 0, 1.65, 1.95 },
+ { "EN25T80", 0x1c, 0x51140000, 64 * 1024, 16, 0, 2.70, 3.60 },
+ { "EN25QA32B", 0x1c, 0x60160000, 64 * 1024, 64, 0, 2.70, 3.60 },
+ { "EN25QA64A", 0x1c, 0x60170000, 64 * 1024, 128, 0, 2.70, 3.60 },
+ { "EN25QA128A", 0x1c, 0x60180000, 64 * 1024, 256, 0, 2.70, 3.60 },
+ { "EN25QW16A", 0x1c, 0x61150000, 64 * 1024, 32, 0, 2.70, 3.60 },
+ { "EN25QW32A", 0x1c, 0x61160000, 64 * 1024, 64, 0, 2.70, 3.60 },
+ { "EN25QH16", 0x1c, 0x70151c70, 64 * 1024, 32, 0, 2.70, 3.60 },
+ { "EN25QH32B", 0x1c, 0x70160000, 64 * 1024, 64, 0, 2.70, 3.60 },
+ { "EN25QH64A", 0x1c, 0x70171c70, 64 * 1024, 128, 0, 2.70, 3.60 },
+ { "EN25QH128A", 0x1c, 0x70181c70, 64 * 1024, 256, 0, 2.70, 3.60 },
+ { "EN25Q256", 0x1c, 0x70191c70, 64 * 1024, 512, 1, 2.70, 3.60 },
+ { "EN25QX64A", 0x1c, 0x71170000, 64 * 1024, 128, 0, 2.70, 3.60 },
+ { "EN25QX128A", 0x1c, 0x71180000, 64 * 1024, 256, 0, 2.70, 3.60 },
+ { "EN25QX256A", 0x1c, 0x71190000, 64 * 1024, 512, 1, 2.70, 3.60 },
+ { "EN25QY256A", 0x1c, 0x73190000, 64 * 1024, 512, 1, 2.70, 3.60 },
+ { "EN25SX64A", 0x1c, 0x78170000, 64 * 1024, 128, 0, 1.65, 1.95 },
+ { "EN25SX128A", 0x1c, 0x78180000, 64 * 1024, 256, 0, 1.65, 1.95 },
+// SPI_FLASH ATMEL --> https://www.microchipdirect.com/newproducttree.aspx?mid=12&catalog=buymicrochip&category=memorytree&treeid=3
+ { "AT26DF161", 0x1f, 0x46000000, 64 * 1024, 32, 0, 2.70, 3.60 },
+ { "AT25DF321", 0x1f, 0x47000000, 64 * 1024, 64, 0, 2.70, 3.60 },
+// SPI_FLASH MICRON --> https://xmcwh.com/en/site/product
+ { "M25P10", 0x20, 0x20110000, 64 * 1024, 2, 0, 2.30, 3.60 },
+ { "M25P20", 0x20, 0x20120000, 64 * 1024, 4, 0, 2.30, 3.60 },
+ { "M25P40", 0x20, 0x20130000, 64 * 1024, 8, 0, 2.30, 3.60 },
+ { "M25P80", 0x20, 0x20140000, 64 * 1024, 16, 0, 2.70, 3.60 },
+ { "M25P016", 0x20, 0x20150000, 64 * 1024, 32, 0, 2.70, 3.60 },
+ { "M25P32", 0x20, 0x20160000, 64 * 1024, 64, 0, 2.70, 3.60 },
+ { "M25P64", 0x20, 0x20170000, 64 * 1024, 128, 0, 2.70, 3.60 },
+ { "M25P128", 0x20, 0x20180000, 64 * 1024, 256, 0, 2.70, 3.60 },
+ { "XM25QH10B", 0x20, 0x40110000, 64 * 1024, 2, 0, 2.70, 3.60 },
+ { "XM25QH20B", 0x20, 0x40120000, 64 * 1024, 4, 0, 2.70, 3.60 },
+ { "XM25QH40B", 0x20, 0x40130000, 64 * 1024, 8, 0, 2.70, 3.60 },
+ { "XM25QH80B", 0x20, 0x40140000, 64 * 1024, 16, 0, 2.70, 3.60 },
+ { "XM25QH16C", 0x20, 0x40150000, 64 * 1024, 32, 0, 2.30, 3.60 },
+ { "XM25QH32B", 0x20, 0x40160000, 64 * 1024, 64, 0, 2.70, 3.60 },
+ { "XM25QH64C", 0x20, 0x40170000, 64 * 1024, 128, 0, 2.30, 3.60 },
+ { "XM25QH128C", 0x20, 0x40182070, 64 * 1024, 256, 0, 2.30, 3.60 },
+ { "XM25QH256C", 0x20, 0x40190000, 64 * 1024, 512, 1, 2.30, 3.60 },
+ { "XM25QH512C", 0x20, 0x40200000, 64 * 1024, 1024, 1, 2.30, 3.60 },
+ { "XM25LU64C", 0x20, 0x41170000, 64 * 1024, 128, 0, 1.65, 1.95 },
+ { "XM25LU128C", 0x20, 0x41180000, 64 * 1024, 256, 0, 1.65, 1.95 },
+ { "XM25QU256C", 0x20, 0x41190000, 64 * 1024, 512, 1, 1.65, 1.95 },
+ { "XM25QU512C", 0x20, 0x41200000, 64 * 1024, 1024, 1, 1.65, 1.95 },
+ { "XM25QW16C", 0x20, 0x42150000, 64 * 1024, 32, 0, 1.65, 3.60 },
+ { "XM25QW32C", 0x20, 0x42160000, 64 * 1024, 64, 0, 1.65, 3.60 },
+ { "XM25QW64C", 0x20, 0x42170000, 64 * 1024, 128, 0, 1.65, 3.60 },
+ { "XM25QW128C", 0x20, 0x42180000, 64 * 1024, 256, 0, 1.65, 3.60 },
+ { "XM25QW256C", 0x20, 0x42190000, 64 * 1024, 512, 1, 1.65, 3.60 },
+ { "XM25QW512C", 0x20, 0x42200000, 64 * 1024, 1024, 1, 1.65, 3.60 },
+ { "XM25QU41B", 0x20, 0x50130000, 64 * 1024, 8, 0, 1.65, 1.95 },
+ { "XM25QU80B", 0x20, 0x50140000, 64 * 1024, 16, 0, 1.65, 1.95 },
+ { "XM25QU16C", 0x20, 0x50150000, 64 * 1024, 32, 0, 1.65, 1.95 },
+ { "XM25LU32C", 0x20, 0x50160000, 64 * 1024, 64, 0, 1.65, 1.95 },
+ { "XM25QH32A", 0x20, 0x70160000, 64 * 1024, 64, 0, 2.70, 3.60 },
+ { "XM25QH64A", 0x20, 0x70170000, 64 * 1024, 128, 0, 2.70, 3.60 },
+ { "XM25QH128A", 0x20, 0x70182070, 64 * 1024, 256, 0, 2.70, 3.60 },
+ { "N25Q032A", 0x20, 0xba160000, 64 * 1024, 64, 0, 2.70, 3.60 },
+ { "N25Q064A", 0x20, 0xba170000, 64 * 1024, 128, 0, 2.70, 3.60 },
+ { "MT25QL64AB", 0x20, 0xba170000, 64 * 1024, 128, 0, 2.70, 3.60 },
+ { "N25Q128A", 0x20, 0xba180000, 64 * 1024, 256, 0, 2.70, 3.60 },
+ { "MT25QL128AB", 0x20, 0xba180000, 64 * 1024, 256, 0, 2.70, 3.60 },
+ { "N25Q256A", 0x20, 0xba190000, 64 * 1024, 512, 1, 2.70, 3.60 },
+ { "MT25QL256AB", 0x20, 0xba190000, 64 * 1024, 512, 1, 2.70, 3.60 },
+ { "MT25QL512AB", 0x20, 0xba200000, 64 * 1024, 1024, 1, 2.70, 3.60 },
+ { "N25Q032A", 0x20, 0xbb160000, 64 * 1024, 64, 0, 1.70, 2.00 },
+ { "N25Q064A", 0x20, 0xbb170000, 64 * 1024, 128, 0, 1.70, 2.00 },
+ { "MT25QU64AB", 0x20, 0xbb170000, 64 * 1024, 128, 0, 1.70, 2.00 },
+ { "N25Q128A", 0x20, 0xbb180000, 64 * 1024, 256, 0, 1.70, 2.00 },
+ { "MT25QU128AB", 0x20, 0xbb180000, 64 * 1024, 256, 0, 1.70, 2.00 },
+ { "MT25QU256AB", 0x20, 0xbb190000, 64 * 1024, 512, 1, 1.70, 2.00 },
+ { "MT25QU512AB", 0x20, 0xbb200000, 64 * 1024, 1024, 1, 1.70, 2.00 },
+// SPI_FLASH AMIC --> http://amictechnology.com/english/flash_spi_flash.html
+ { "A25L10PU", 0x37, 0x20110000, 64 * 1024, 2, 0, 2.70, 3.60 },
+ { "A25L20PU", 0x37, 0x20120000, 64 * 1024, 4, 0, 2.70, 3.60 },
+ { "A25L40PU", 0x37, 0x20120000, 64 * 1024, 8, 0, 2.70, 3.60 },
+ { "A25L80PU", 0x37, 0x20140000, 64 * 1024, 16, 0, 2.70, 3.60 },
+ { "A25L16PU", 0x37, 0x20150000, 64 * 1024, 32, 0, 2.70, 3.60 },
+ { "A25L10PT", 0x37, 0x20210000, 64 * 1024, 2, 0, 2.70, 3.60 },
+ { "A25L20PT", 0x37, 0x20220000, 64 * 1024, 4, 0, 2.70, 3.60 },
+ { "A25L40PT", 0x37, 0x20220000, 64 * 1024, 8, 0, 2.70, 3.60 },
+ { "A25L80PT", 0x37, 0x20240000, 64 * 1024, 16, 0, 2.70, 3.60 },
+ { "A25L16PT", 0x37, 0x20250000, 64 * 1024, 32, 0, 2.70, 3.60 },
+ { "A25L010", 0x37, 0x30110000, 64 * 1024, 2, 0, 2.70, 3.60 },
+ { "A25L020", 0x37, 0x30120000, 64 * 1024, 4, 0, 2.70, 3.60 },
+ { "A25L040", 0x37, 0x30130000, 64 * 1024, 8, 0, 2.70, 3.60 },
+ { "A25L040", 0x37, 0x30130000, 64 * 1024, 8, 0, 2.70, 3.60 },
+ { "A25L080", 0x37, 0x30140000, 64 * 1024, 16, 0, 2.70, 3.60 },
+ { "A25L016", 0x37, 0x30150000, 64 * 1024, 32, 0, 2.70, 3.60 },
+ { "A25L032", 0x37, 0x30160000, 64 * 1024, 64, 0, 2.70, 3.60 },
+ { "A25LQ080", 0x37, 0x40140000, 64 * 1024, 16, 0, 2.70, 3.60 },
+ { "A25LQ16", 0x37, 0x40150000, 64 * 1024, 32, 0, 2.70, 3.60 },
+ { "A25LQ32", 0x37, 0x40160000, 64 * 1024, 64, 0, 2.70, 3.60 },
+ { "A25LQ64", 0x37, 0x40170000, 64 * 1024, 128, 0, 2.70, 3.60 },
+// SPI_FLASH EXCELSEMI -->
+ { "ES25P10", 0x4a, 0x20110000, 64 * 1024, 4, 0, 2.70, 3.60 },
+ { "ES25P20", 0x4a, 0x20120000, 64 * 1024, 8, 0, 2.70, 3.60 },
+ { "ES25P40", 0x4a, 0x20130000, 64 * 1024, 16, 0, 2.70, 3.60 },
+ { "ES25P80", 0x4a, 0x20140000, 64 * 1024, 32, 0, 2.70, 3.60 },
+ { "ES25P16", 0x4a, 0x20150000, 64 * 1024, 64, 0, 2.70, 3.60 },
+ { "ES25P32", 0x4a, 0x20160000, 64 * 1024, 128, 0, 2.70, 3.60 },
+ { "ES25M40A", 0x4a, 0x32130000, 64 * 1024, 16, 0, 2.70, 3.60 },
+ { "ES25M80A", 0x4a, 0x32140000, 64 * 1024, 32, 0, 2.70, 3.60 },
+ { "ES25M16A", 0x4a, 0x32150000, 64 * 1024, 64, 0, 2.70, 3.60 },
+// SPI_FLASH DOUQI --> http://www.douqitech.com/pd.jsp?fromColId=129&id=7#_pp=129_348
+ { "DQ25Q64AS", 0x54, 0x40170000, 64 * 1024, 128, 0, 2.70, 3.60 },
+// SPI_FLASH Zbit --> https://www.szxghc.com/flash/28.html
+ { "ZB25LD10A", 0x5e, 0x10110000, 64 * 1024, 2, 0, 1.65, 1.95 },
+ { "ZB25LD20A", 0x5e, 0x10120000, 64 * 1024, 4, 0, 1.65, 1.95 },
+ { "ZB25LD40B", 0x5e, 0x10130000, 64 * 1024, 8, 0, 1.65, 1.95 },
+ { "ZB25LD80", 0x5e, 0x10140000, 64 * 1024, 16, 0, 1.65, 1.95 },
+ { "ZB25D10A", 0x5e, 0x32110000, 64 * 1024, 2, 0, 2.70, 3.60 },
+ { "ZB25D20A", 0x5e, 0x32120000, 64 * 1024, 4, 0, 2.70, 3.60 },
+ { "ZB25D40B", 0x5e, 0x32130000, 64 * 1024, 8, 0, 2.70, 3.60 },
+ { "ZB25D80B", 0x5e, 0x32140000, 64 * 1024, 16, 0, 2.70, 3.60 },
+ { "ZB25VQ16", 0x5e, 0x40150000, 64 * 1024, 32, 0, 2.30, 3.60 },
+ { "ZB25VQ32", 0x5e, 0x40160000, 64 * 1024, 64, 0, 2.30, 3.60 },
+ { "ZB25VQ64", 0x5e, 0x40170000, 64 * 1024, 128, 0, 2.30, 3.60 },
+ { "ZB25VQ128", 0x5e, 0x40180000, 64 * 1024, 256, 0, 2.30, 3.60 },
+ { "ZB25LQ16", 0x5e, 0x50150000, 64 * 1024, 32, 0, 1.65, 1.95 },
+ { "ZB25LQ32", 0x5e, 0x50160000, 64 * 1024, 64, 0, 1.65, 1.95 },
+ { "ZB25LQ64", 0x5e, 0x50170000, 64 * 1024, 128, 0, 1.65, 1.95 },
+ { "ZB25LQ128", 0x5e, 0x50180000, 64 * 1024, 256, 0, 1.65, 1.95 },
+ { "ZB25VQ20A", 0x5e, 0x60120000, 64 * 1024, 4, 0, 2.70, 3.60 },
+ { "ZB25VQ40A", 0x5e, 0x60130000, 64 * 1024, 8, 0, 2.70, 3.60 },
+ { "ZB25VQ80A", 0x5e, 0x60140000, 64 * 1024, 16, 0, 2.70, 3.60 },
+ { "ZB25VQ16A", 0x5e, 0x60150000, 64 * 1024, 32, 0, 2.70, 3.60 },
+// SPI_FLASH ONSemi --> https://www.onsemi.com/products/timing-logic-memory/memory/eeprom-memory
+ { "LE25U20AMB", 0x62, 0x06120000, 64 * 1024, 4, 0, 2.30, 3.60 },
+ { "LE25U40CMC", 0x62, 0x06130000, 64 * 1024, 8, 0, 2.30, 3.60 },
+// SPI_FLASH Boya --> http://www.boyamicro.com/SPI_Nor_Flash.php
+ { "BY25Q05AW", 0x68, 0x10100000, 64 * 1024, 1, 0, 1.65, 3.60 },
+ { "BY25Q10AW", 0x68, 0x10110000, 64 * 1024, 2, 0, 1.65, 3.60 },
+ { "BY25Q20BL", 0x68, 0x10120000, 64 * 1024, 4, 0, 1.65, 2.00 },
+ { "BY25Q40BL", 0x68, 0x10130000, 64 * 1024, 8, 0, 1.65, 2.10 },
+ { "BY25Q80AW", 0x68, 0x10140000, 64 * 1024, 16, 0, 1.65, 2.00 },
+ { "BY25Q16BL", 0x68, 0x10150000, 64 * 1024, 32, 0, 1.65, 2.00 },
+ { "BY25D05AS", 0x68, 0x40100000, 64 * 1024, 1, 0, 2.70, 3.60 },
+ { "BY25D10AS", 0x68, 0x40110000, 64 * 1024, 2, 0, 2.70, 3.60 },
+ { "BY25D20AS", 0x68, 0x40120000, 64 * 1024, 4, 0, 2.70, 3.60 },
+ { "BY25D40AS", 0x68, 0x40130000, 64 * 1024, 8, 0, 2.70, 3.60 },
+ { "BY25Q80BS", 0x68, 0x40140000, 64 * 1024, 16, 0, 2.70, 3.60 },
+ { "BY25Q16BS", 0x68, 0x40150000, 64 * 1024, 32, 0, 2.70, 3.60 },
+ { "BY25Q32BS", 0x68, 0x40160000, 64 * 1024, 64, 0, 2.70, 3.60 },
+ { "BY25Q64AS", 0x68, 0x40170000, 64 * 1024, 128, 0, 2.70, 3.60 },
+ { "BY25Q128AS", 0x68, 0x40180000, 64 * 1024, 256, 0, 2.70, 3.60 },
+ { "BY25Q256ES", 0x68, 0x40190000, 64 * 1024, 512, 1, 2.70, 3.60 },
+ { "BY25Q10AL", 0x68, 0x60110000, 64 * 1024, 2, 0, 1.65, 2.00 },
+ { "BY25Q20AL", 0x68, 0x60120000, 64 * 1024, 4, 0, 1.65, 2.00 },
+ { "BY25Q40AL", 0x68, 0x60130000, 64 * 1024, 8, 0, 1.65, 2.00 },
+ { "BY25Q32AL", 0x68, 0x60160000, 64 * 1024, 64, 0, 1.65, 2.00 },
+ { "BY25Q64AL", 0x68, 0x60170000, 64 * 1024, 128, 0, 1.65, 2.00 },
+ { "BY25Q128EL", 0x68, 0x60180000, 64 * 1024, 256, 0, 1.65, 2.00 },
+// SPI_FLASH PFLASH -->
+ { "Pm25LQ512B", 0x7f, 0x9d200500, 64 * 1024, 1, 0, 2.70, 3.60 },
+ { "Pm25LQ010B", 0x7f, 0x9d211000, 64 * 1024, 2, 0, 2.70, 3.60 },
+ { "Pm25LQ020B", 0x7f, 0x9d421100, 64 * 1024, 4, 0, 2.70, 3.60 },
+ { "PM25LQ016", 0x7f, 0x9d450000, 64 * 1024, 32, 0, 2.30, 3.60 },
+ { "PM25LQ032", 0x7f, 0x9d460000, 64 * 1024, 64, 0, 2.30, 3.60 },
+ { "PM25LQ064", 0x7f, 0x9d470000, 64 * 1024, 128, 0, 2.30, 3.60 },
+ { "PM25LQ128", 0x7f, 0x9d480000, 64 * 1024, 256, 0, 2.30, 3.60 },
+ { "Pm25LQ040B", 0x7f, 0x9d7e7e00, 64 * 1024, 8, 0, 2.70, 3.60 },
+// SPI_FLASH Puya --> https://www.puyasemi.com/cpzx/info_131_aid_198_kid_195.html
+ { "P25Q06H", 0x85, 0x00100000, 64 * 1024, 1, 0, 2.70, 3.60 },
+ { "P25Q40H", 0x85, 0x20130000, 64 * 1024, 8, 0, 2.70, 3.60 },
+ { "P25Q11H", 0x85, 0x40110000, 64 * 1024, 2, 0, 2.70, 3.60 },
+ { "P25Q21H", 0x85, 0x40120000, 64 * 1024, 4, 0, 2.70, 3.60 },
+ { "P25Q10H", 0x85, 0x60110000, 64 * 1024, 2, 0, 2.30, 3.60 },
+ { "P25Q20H", 0x85, 0x60120000, 64 * 1024, 4, 0, 2.30, 3.60 },
+ { "P25Q40H", 0x85, 0x60130000, 64 * 1024, 8, 0, 2.30, 3.60 },
+ { "P25Q80H", 0x85, 0x60140000, 64 * 1024, 16, 0, 2.70, 3.60 },
+ { "P25Q16H", 0x85, 0x60150000, 64 * 1024, 32, 0, 2.70, 3.60 },
+ { "P25Q32H", 0x85, 0x60160000, 64 * 1024, 64, 0, 2.70, 3.60 },
+ { "P25Q64H", 0x85, 0x60170000, 64 * 1024, 128, 0, 2.30, 3.60 },
+ { "P25Q128H", 0x85, 0x60180000, 64 * 1024, 256, 0, 2.30, 3.60 },
+// SPI_FLASH ESMT --> https://www.esmt.com.tw/en/Products
+ { "F25L004A", 0x8c, 0x20130000, 64 * 1024, 8, 0, 2.70, 3.60 },
+ { "F25L008A", 0x8c, 0x20140000, 64 * 1024, 16, 0, 2.70, 3.60 },
+ { "F25L016", 0x8c, 0x21150000, 64 * 1024, 32, 0, 2.70, 3.60 },
+ { "F25L032", 0x8c, 0x21160000, 64 * 1024, 64, 0, 2.70, 3.60 },
+ { "F25L064", 0x8c, 0x21170000, 64 * 1024, 128, 0, 2.70, 3.60 },
+ { "F25L16QA", 0x8c, 0x41158c41, 64 * 1024, 32, 0, 2.70, 3.60 },
+ { "F25L32QA", 0x8c, 0x41168c41, 64 * 1024, 64, 0, 2.70, 3.60 },
+ { "F25L64QA", 0x8c, 0x41170000, 64 * 1024, 128, 0, 2.70, 3.60 },
+// SPI_FLASH ISSI --> https://www.issi.com/US/product-flash.shtml
+ { "IS25LQ010", 0x9d, 0x40110000, 64 * 1024, 2, 0, 2.30, 3.60 },
+ { "IS25LQ020", 0x9d, 0x40120000, 64 * 1024, 4, 0, 2.30, 3.60 },
+ { "IS25LP080D", 0x9d, 0x60140000, 64 * 1024, 16, 0, 2.30, 3.60 },
+ { "IS25LP016D", 0x9d, 0x60150000, 64 * 1024, 32, 0, 2.30, 3.60 },
+ { "IS25LP032D", 0x9d, 0x60160000, 64 * 1024, 64, 0, 2.30, 3.60 },
+ { "IS25LP064D", 0x9d, 0x60170000, 64 * 1024, 128, 0, 2.30, 3.60 },
+ { "IS25LP128F", 0x9d, 0x60180000, 64 * 1024, 256, 0, 2.30, 3.60 },
+ { "IS25LP256D", 0x9d, 0x60190000, 64 * 1024, 512, 1, 2.30, 3.60 },
+ { "IS25LP512D", 0x9d, 0x601a0000, 64 * 1024, 1024, 1, 2.30, 3.60 },
+ { "IS25WP040D", 0x9d, 0x70130000, 64 * 1024, 8, 0, 1.65, 1.95 },
+ { "IS25WP080D", 0x9d, 0x70140000, 64 * 1024, 16, 0, 1.65, 1.95 },
+ { "IS25WP016D", 0x9d, 0x70150000, 64 * 1024, 32, 0, 1.65, 1.95 },
+ { "IS25WP032D", 0x9d, 0x70160000, 64 * 1024, 64, 0, 1.65, 1.95 },
+ { "IS25WP064D", 0x9d, 0x70170000, 64 * 1024, 128, 0, 1.65, 1.95 },
+ { "IS25WP128F", 0x9d, 0x70180000, 64 * 1024, 256, 0, 1.65, 1.95 },
+ { "IS25WP256D", 0x9d, 0x70190000, 64 * 1024, 512, 1, 1.65, 1.95 },
+ { "IS25WP512D", 0x9d, 0x701a0000, 64 * 1024, 1024, 1, 1.65, 1.95 },
+// SPI_FLASH Fudan --> https://www.fm-chips.com/spi-nor-flash.html
+ { "FM25W04", 0xa1, 0x28130000, 64 * 1024, 8, 0, 1.65, 3.60 },
+ { "FM25W16", 0xa1, 0x28150000, 64 * 1024, 32, 0, 1.65, 3.60 },
+ { "FM25W32", 0xa1, 0x28160000, 64 * 1024, 64, 0, 1.65, 3.60 },
+ { "FM25W64", 0xa1, 0x28170000, 64 * 1024, 128, 0, 1.65, 3.60 },
+ { "FM25W128", 0xa1, 0x28180000, 64 * 1024, 256, 0, 1.65, 3.60 },
+ { "FM25Q04", 0xa1, 0x40130000, 64 * 1024, 8, 0, 2.70, 3.60 },
+ { "FM25Q08", 0xa1, 0x40140000, 64 * 1024, 16, 0, 2.70, 3.60 },
+ { "FM25Q16", 0xa1, 0x40150000, 64 * 1024, 32, 0, 2.70, 3.60 },
+ { "FS25Q32", 0xa1, 0x40160000, 64 * 1024, 64, 0, 2.70, 3.60 },
+ { "FS25Q64", 0xa1, 0x40170000, 64 * 1024, 128, 0, 2.70, 3.60 },
+ { "FS25Q128", 0xa1, 0x40180000, 64 * 1024, 256, 0, 2.70, 3.60 },
+// SPI_FLASH Zetta --> http://en.zettadevice.com/detail_10.html
+ { "ZD25Q64B", 0xba, 0x32170000, 64 * 1024, 128, 0, 2.70, 3.60 },
+ { "ZD25LQ128", 0xba, 0x42180000, 64 * 1024, 256, 0, 1.65, 1.95 },
+ { "ZD25LQ64", 0xba, 0x43170000, 64 * 1024, 128, 0, 1.65, 1.95 },
+ { "ZD25WD20B", 0xba, 0x60120000, 64 * 1024, 4, 0, 1.65, 3.60 },
+ { "ZD25WD40B", 0xba, 0x60130000, 64 * 1024, 8, 0, 1.65, 3.60 },
+ { "ZD25Q80C", 0xba, 0x60140000, 64 * 1024, 16, 0, 2.30, 3.60 },
+ { "ZD25Q16B", 0xba, 0x60150000, 64 * 1024, 32, 0, 2.70, 3.60 },
+ { "ZD25Q32C", 0xba, 0x60160000, 64 * 1024, 64, 0, 2.70, 3.60 },
+// SPI_FLASH PCT --> https://www.pct.com.tw/product/70
+ { "PCT25VF016B", 0xbf, 0x25410000, 64 * 1024, 32, 0, 2.70, 3.60 },
+ { "PCT25VF032B", 0xbf, 0x254a0000, 64 * 1024, 64, 0, 2.70, 3.60 },
+ { "PCT25VF064C", 0xbf, 0x254b0000, 64 * 1024, 128, 0, 2.70, 3.60 },
+ { "PCT25VF020B", 0xbf, 0x258c0000, 64 * 1024, 4, 0, 2.70, 3.60 },
+ { "PCT25VF040B", 0xbf, 0x258d0000, 64 * 1024, 8, 0, 2.70, 3.60 },
+ { "PCT25VF080B", 0xbf, 0x258e0000, 64 * 1024, 16, 0, 2.70, 3.60 },
+ { "PCT26VF016", 0xbf, 0x26010000, 64 * 1024, 32, 0, 2.70, 3.60 },
+ { "PCT26VF032", 0xbf, 0x26020000, 64 * 1024, 64, 0, 2.70, 3.60 },
+ { "PCT25VF010A", 0xbf, 0x49000000, 64 * 1024, 2, 0, 2.70, 3.60 },
+// SPI_FLASH MXIC --> https://www.macronix.com/en-us/products/NOR-Flash/Serial-NOR-Flash/Pages/default.aspx#!tabs=2-5-3V64Mb
+ { "MX25L8005M", 0xc2, 0x2014c220, 64 * 1024, 16, 0, 2.70, 3.60 },
+ { "MX25L1605D", 0xc2, 0x2015c220, 64 * 1024, 32, 0, 2.70, 3.60 },
+ { "MX25L3205D", 0xc2, 0x2016c220, 64 * 1024, 64, 0, 2.70, 3.60 },
+ { "MX25L6405D", 0xc2, 0x2017c220, 64 * 1024, 128, 0, 2.70, 3.60 },
+ { "MX25L12805D", 0xc2, 0x2018c220, 64 * 1024, 256, 0, 2.70, 3.60 },
+ { "MX25L25635E", 0xc2, 0x2019c220, 64 * 1024, 512, 1, 2.70, 3.60 },
+ { "MX25L51245G", 0xc2, 0x201ac220, 64 * 1024, 1024, 1, 2.70, 3.60 },
+ { "MX25U5121E", 0xc2, 0x25300000, 64 * 1024, 1, 0, 1.65, 2.00 },
+ { "MX25U1001E", 0xc2, 0x25310000, 64 * 1024, 2, 0, 1.65, 2.00 },
+ { "MX25U2035F", 0xc2, 0x25320000, 64 * 1024, 4, 0, 1.65, 2.00 },
+ { "MX25U4035F", 0xc2, 0x25330000, 64 * 1024, 8, 0, 1.65, 2.00 },
+ { "MX25U80356", 0xc2, 0x25340000, 64 * 1024, 16, 0, 1.65, 2.00 },
+ { "MX25U1632F", 0xc2, 0x25350000, 64 * 1024, 32, 0, 1.65, 2.00 },
+ { "MX25U3232F", 0xc2, 0x25360000, 64 * 1024, 64, 0, 1.65, 2.00 },
+ { "MX25U6432F", 0xc2, 0x25370000, 64 * 1024, 128, 0, 1.65, 2.00 },
+ { "MX25U12832F", 0xc2, 0x25380000, 64 * 1024, 256, 0, 1.65, 2.00 },
+ { "MX25U25643G", 0xc2, 0x25390000, 64 * 1024, 512, 1, 1.65, 2.00 },
+ { "MX25U51245G", 0xc2, 0x253a0000, 64 * 1024, 1024, 1, 1.65, 2.00 },
+ { "MX25R2035F", 0xc2, 0x28120000, 64 * 1024, 4, 0, 1.65, 3.60 },
+ { "MX25R4035F", 0xc2, 0x28130000, 64 * 1024, 8, 0, 1.65, 3.60 },
+ { "MX25R8035F", 0xc2, 0x28140000, 64 * 1024, 16, 0, 1.65, 3.60 },
+ { "MX25R1635F", 0xc2, 0x28150000, 64 * 1024, 32, 0, 1.65, 3.60 },
+ { "MX25R3235F", 0xc2, 0x28160000, 64 * 1024, 64, 0, 1.65, 3.60 },
+ { "MX25R6435F", 0xc2, 0x28170000, 64 * 1024, 128, 0, 1.65, 3.60 },
+// SPI_FLASH GigaDevice --> https://www.gigadevice.com/product/flash/product-series/spi-nor-flash
+ { "GD25F40", 0xc8, 0x20130000, 64 * 1024, 8, 0, 2.70, 3.60 },
+ { "GD25F80", 0xc8, 0x20140000, 64 * 1024, 16, 0, 2.70, 3.60 },
+ { "GD25D40", 0xc8, 0x30130000, 64 * 1024, 8, 0, 2.70, 3.60 },
+ { "GD25D80", 0xc8, 0x30140000, 64 * 1024, 16, 0, 2.70, 3.60 },
+ { "GD25D05C", 0xc8, 0x40100000, 64 * 1024, 1, 0, 2.70, 3.60 },
+ { "GD25D10C", 0xc8, 0x40110000, 64 * 1024, 2, 0, 2.70, 3.60 },
+ { "GD25Q20C", 0xc8, 0x40120000, 64 * 1024, 4, 0, 2.70, 3.60 },
+ { "GD25Q40C", 0xc8, 0x40130000, 64 * 1024, 8, 0, 2.70, 3.60 },
+ { "GD25Q80C", 0xc8, 0x40140000, 64 * 1024, 16, 0, 2.70, 3.60 },
+ { "GD25Q16C", 0xc8, 0x40150000, 64 * 1024, 32, 0, 2.70, 3.60 },
+ { "GD25Q32", 0xc8, 0x40160000, 64 * 1024, 64, 0, 2.70, 3.60 },
+ { "GD25Q64CSIG", 0xc8, 0x40170000, 64 * 1024, 128, 0, 2.70, 3.60 },
+ { "GD25Q128CSIG", 0xc8, 0x4018c840, 64 * 1024, 256, 0, 2.70, 3.60 },
+ { "GD25Q256CSIG", 0xc8, 0x4019c840, 64 * 1024, 512, 1, 2.70, 3.60 },
+ { "GD25LD05C", 0xc8, 0x60100000, 64 * 1024, 1, 0, 1.65, 2.00 },
+ { "GD25LD10C", 0xc8, 0x60110000, 64 * 1024, 2, 0, 1.65, 2.00 },
+ { "GD25LD20C", 0xc8, 0x60120000, 64 * 1024, 4, 0, 1.65, 2.00 },
+ { "GD25LD40C", 0xc8, 0x60130000, 64 * 1024, 8, 0, 1.65, 2.00 },
+ { "GD25LQ80C", 0xc8, 0x60140000, 64 * 1024, 16, 0, 1.65, 2.10 },
+ { "GD25LQ16C", 0xc8, 0x60150000, 64 * 1024, 32, 0, 1.65, 2.10 },
+ { "GD25LQ32E", 0xc8, 0x60160000, 64 * 1024, 64, 0, 1.65, 2.10 },
+ { "GD25LQ64E", 0xc8, 0x60170000, 64 * 1024, 128, 0, 1.65, 2.00 },
+ { "GD25LQ128", 0xc8, 0x6018c840, 64 * 1024, 256, 0, 1.65, 2.00 },
+ { "GD25LQ256D", 0xc8, 0x60190000, 64 * 1024, 512, 1, 1.65, 2.00 },
+ { "GD25WD05C", 0xc8, 0x64100000, 64 * 1024, 1, 0, 1.65, 3.60 },
+ { "GD25WD10C", 0xc8, 0x64110000, 64 * 1024, 2, 0, 1.65, 3.60 },
+ { "GD25WD20E", 0xc8, 0x64120000, 64 * 1024, 4, 0, 1.65, 3.60 },
+ { "GD25WD40E", 0xc8, 0x64130000, 64 * 1024, 8, 0, 1.65, 3.60 },
+ { "GD25WD80C", 0xc8, 0x64140000, 64 * 1024, 16, 0, 1.65, 3.60 },
+ { "GD25WQ20E", 0xc8, 0x65120000, 64 * 1024, 4, 0, 1.65, 3.60 },
+ { "GD25WQ40E", 0xc8, 0x65130000, 64 * 1024, 8, 0, 1.65, 3.60 },
+ { "GD25WQ80E", 0xc8, 0x65140000, 64 * 1024, 16, 0, 1.65, 3.60 },
+ { "GD25WQ16E", 0xc8, 0x65150000, 64 * 1024, 32, 0, 1.65, 3.60 },
+ { "GD25WQ32E", 0xc8, 0x65160000, 64 * 1024, 64, 0, 1.65, 3.60 },
+ { "GD25WQ64E", 0xc8, 0x65170000, 64 * 1024, 128, 0, 1.65, 3.60 },
+ { "GD25WQ128E", 0xc8, 0x65180000, 64 * 1024, 256, 0, 1.65, 3.60 },
+ { "GD25WB256E", 0xc8, 0x65190000, 64 * 1024, 512, 1, 1.65, 3.60 },
+ { "GD25LB512ME", 0xc8, 0x671a0000, 64 * 1024, 1024, 1, 1.65, 2.00 },
+// SPI_FLASH GigaDevice --> https://www.gigadevice.com/product/flash/product-series/spi-nor-flash
+ { "YC25Q128", 0xd8, 0x4018c840, 64 * 1024, 256, 0, 2.70, 3.60 },
+// SPI_FLASH PARAGON -->
+ { "PN25F08", 0xe0, 0x40140000, 64 * 1024, 16, 0, 2.70, 3.60 },
+ { "PN25F16", 0xe0, 0x40150000, 64 * 1024, 32, 0, 2.70, 3.60 },
+ { "PN25F32", 0xe0, 0x40160000, 64 * 1024, 64, 0, 2.70, 3.60 },
+ { "PN25F64", 0xe0, 0x40170000, 64 * 1024, 128, 0, 2.70, 3.60 },
+ { "PN25F128", 0xe0, 0x40180000, 64 * 1024, 256, 0, 2.70, 3.60 },
+// SPI_FLASH WINBOND --> https://www.winbond.com/hq/product/code-storage-flash-memory/serial-nor-flash/?locale=en&selected=32Mb#Density
+ { "W25P80", 0xef, 0x20140000, 64 * 1024, 16, 0, 2.70, 3.60 },
+ { "W25P16", 0xef, 0x20150000, 64 * 1024, 32, 0, 2.70, 3.60 },
+ { "W25P32", 0xef, 0x20160000, 64 * 1024, 64, 0, 2.70, 3.60 },
+ { "W25X05", 0xef, 0x30100000, 64 * 1024, 1, 0, 2.30, 3.60 },
+ { "W25X10", 0xef, 0x30110000, 64 * 1024, 2, 0, 2.70, 3.60 },
+ { "W25X20", 0xef, 0x30120000, 64 * 1024, 4, 0, 2.70, 3.60 },
+ { "W25X40", 0xef, 0x30130000, 64 * 1024, 8, 0, 2.70, 3.60 },
+ { "W25X80", 0xef, 0x30140000, 64 * 1024, 16, 0, 2.70, 3.60 },
+ { "W25X16", 0xef, 0x30150000, 64 * 1024, 32, 0, 2.70, 3.60 },
+ { "W25X32VS", 0xef, 0x30160000, 64 * 1024, 64, 0, 2.70, 3.60 },
+ { "W25X64", 0xef, 0x30170000, 64 * 1024, 128, 0, 2.70, 3.60 },
+ { "W25Q20CL", 0xef, 0x40120000, 64 * 1024, 4, 0, 2.30, 3.60 },
+ { "W25Q40BV", 0xef, 0x40130000, 64 * 1024, 8, 0, 2.70, 3.60 },
+ { "W25Q80BL", 0xef, 0x40140000, 64 * 1024, 16, 0, 2.30, 3.60 },
+ { "W25Q16DV", 0xef, 0x40150000, 64 * 1024, 32, 0, 2.70, 3.60 },
+ { "W25Q32BV", 0xef, 0x40160000, 64 * 1024, 64, 0, 2.70, 3.60 },
+ { "W25Q64BV", 0xef, 0x40170000, 64 * 1024, 128, 0, 2.70, 3.60 },
+ { "W25Q128BV", 0xef, 0x40180000, 64 * 1024, 256, 0, 2.70, 3.60 },
+ { "W25Q256FV", 0xef, 0x40190000, 64 * 1024, 512, 1, 2.70, 3.60 },
+ { "W25Q20BW", 0xef, 0x50120000, 64 * 1024, 4, 0, 1.65, 1.95 },
+ { "W25Q80", 0xef, 0x50140000, 64 * 1024, 16, 0, 2.30, 3.60 },
+ { "W25Q10EW", 0xef, 0x60110000, 64 * 1024, 2, 0, 1.65, 1.95 },
+ { "W25Q20EW", 0xef, 0x60120000, 64 * 1024, 4, 0, 1.65, 1.95 },
+ { "W25Q40EW", 0xef, 0x60130000, 64 * 1024, 8, 0, 1.65, 1.95 },
+ { "W25Q80EW", 0xef, 0x60140000, 64 * 1024, 16, 0, 1.65, 1.95 },
+ { "W25Q16JW", 0xef, 0x60150000, 64 * 1024, 32, 0, 1.65, 1.95 },
+ { "W25Q32FW", 0xef, 0x60160000, 64 * 1024, 64, 0, 1.65, 1.95 },
+ { "W25Q64DW", 0xef, 0x60170000, 64 * 1024, 128, 0, 1.70, 1.95 },
+ { "W25Q128FW", 0xef, 0x60180000, 64 * 1024, 256, 0, 1.65, 1.95 },
+ { "W25Q256JW", 0xef, 0x60190000, 64 * 1024, 512, 1, 1.70, 1.95 },
+ { "W25M512JW", 0xef, 0x61190000, 64 * 1024, 1024, 1, 1.70, 1.95 },
+ { "W25Q512JV", 0xef, 0x70200000, 64 * 1024, 1024, 1, 2.70, 3.60 },
+ { "W25M512JV", 0xef, 0x71190000, 64 * 1024, 1024, 1, 2.70, 3.60 },
+ { "W25Q32JW", 0xef, 0x80160000, 64 * 1024, 64, 0, 1.70, 1.95 },
+// SPI_FLASH Fidelix --> http://www.fidelix.co.kr/pages/sub223_en.php
+ { "FM25Q04A", 0xf8, 0x32130000, 64 * 1024, 8, 0, 2.70, 3.60 },
+ { "FM25Q08A", 0xf8, 0x32140000, 64 * 1024, 16, 0, 2.70, 3.60 },
+ { "FM25Q16A", 0xf8, 0x32150000, 64 * 1024, 32, 0, 2.70, 3.60 },
+ { "FM25Q32A", 0xf8, 0x32160000, 64 * 1024, 64, 0, 2.70, 3.60 },
+ { "FM25Q64A", 0xf8, 0x32170000, 64 * 1024, 128, 0, 2.70, 3.60 },
+ { "FM25Q128A", 0xf8, 0x32180000, 64 * 1024, 256, 0, 2.70, 3.60 },
+ { "FM25M04A", 0xf8, 0x42130000, 64 * 1024, 8, 0, 1.65, 1.95 },
+ { "FM25M08A", 0xf8, 0x42140000, 64 * 1024, 16, 0, 1.65, 1.95 },
+ { "FM25M16A", 0xf8, 0x42150000, 64 * 1024, 32, 0, 1.65, 1.95 },
+ { "FM25M32B", 0xf8, 0x42160000, 64 * 1024, 64, 0, 1.65, 1.95 },
+ { "FM25M64A", 0xf8, 0x42170000, 64 * 1024, 128, 0, 1.65, 1.95 }
};
/*
@@ -515,6 +792,8 @@ struct chip_info *chip_prob(void)
if (info->id == buf[0]) {
if ((info->jedec_id == jedec) || ((info->jedec_id & 0xffff0000) == jedec_strip)) {
printf("Detected SPI NOR Flash:\e[93m %s\e[0m, Flash Size:\e[93m %ld \e[0mMB\n", info->name, (info->sector_size * info->n_sectors) >> 20);
+ printf ("VCC: %2.2f ... %2.2fV\n", info->vcc_min, info->vcc_max);
+ if (info->vcc_max < 3.0) printf ("Please use the 1.8V adapter!\n");
return info;
}