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/''/""} + ruinfo=${ruinfo/''/""} + ruinfo=${ruinfo/''/""} + ruinfo=${ruinfo/''/""} + 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; }