From 23ad2da5604fd1f6ecc63a229e2a855945576bfe Mon Sep 17 00:00:00 2001 From: Markus Sattler Date: Thu, 30 Apr 2015 16:06:01 +0200 Subject: [PATCH] add function to get flash size based of flash Chip id --- .../esp8266com/esp8266/cores/esp8266/Esp.cpp | 29 +++++++++++++++++++ .../esp8266com/esp8266/cores/esp8266/Esp.h | 1 + 2 files changed, 30 insertions(+) diff --git a/hardware/esp8266com/esp8266/cores/esp8266/Esp.cpp b/hardware/esp8266com/esp8266/cores/esp8266/Esp.cpp index 26f31bb4c..b2126b627 100644 --- a/hardware/esp8266com/esp8266/cores/esp8266/Esp.cpp +++ b/hardware/esp8266com/esp8266/cores/esp8266/Esp.cpp @@ -218,3 +218,32 @@ FlashMode_t EspClass::getFlashChipMode(void) } return mode; } + +/** + * Infos from + * http://www.wlxmall.com/images/stock_item/att/A1010004.pdf + * http://www.gigadevice.com/product-series/5.html?locale=en_US + */ +uint32_t EspClass::getFlashChipSizeByChipId(void) { + uint32_t chipId = getFlashChipId(); + switch(chipId) { + case 0x1740C8: // GD25Q64B + return (8_MB); + case 0x1640C8: // GD25Q32B + return (4_MB); + case 0x1540C8: // GD25Q16B + return (2_MB); + case 0x1440C8: // GD25Q80 + return (1_MB); + case 0x1340C8: // GD25Q40 + return (512_kB); + case 0x1240C8: // GD25Q20 + return (256_kB); + case 0x1140C8: // GD25Q10 + return (128_kB); + case 0x1040C8: // GD25Q12 + return (64_kB); + default: + return 0; + } +} diff --git a/hardware/esp8266com/esp8266/cores/esp8266/Esp.h b/hardware/esp8266com/esp8266/cores/esp8266/Esp.h index 34fa3e13b..78b468163 100644 --- a/hardware/esp8266com/esp8266/cores/esp8266/Esp.h +++ b/hardware/esp8266com/esp8266/cores/esp8266/Esp.h @@ -90,6 +90,7 @@ class EspClass { uint32_t getFlashChipSize(void); uint32_t getFlashChipSpeed(void); FlashMode_t getFlashChipMode(void); + uint32_t getFlashChipSizeByChipId(void); };