diff --git a/include/espressif/spi_flash.h b/include/espressif/spi_flash.h index 719c045..61ca32d 100644 --- a/include/espressif/spi_flash.h +++ b/include/espressif/spi_flash.h @@ -21,4 +21,22 @@ sdk_SpiFlashOpResult sdk_spi_flash_erase_sector(uint16_t sec); sdk_SpiFlashOpResult sdk_spi_flash_write(uint32_t des_addr, uint32_t *src_addr, uint32_t size); sdk_SpiFlashOpResult sdk_spi_flash_read(uint32_t src_addr, uint32_t *des_addr, uint32_t size); +/* SDK uses this structure internally to account for flash size. + + Based on RE work by @foogod at + http://esp8266-re.foogod.com/wiki/Flashchip_%28IoT_RTOS_SDK_0.9.9%29 + + Note that the only field the SDK actually uses appears to be chip_size +*/ +typedef struct { + uint32_t device_id; + uint32_t chip_size; /* in bytes */ + uint32_t block_size; /* in bytes */ + uint32_t sector_size; /* in bytes */ + uint32_t page_size; /* in bytes */ + uint32_t status_mask; +} sdk_flashchip_t; + +extern sdk_flashchip_t sdk_flashchip; + #endif