1616
1717#include <soc/spi_mem_compat.h>
1818
19- extern esp_rom_spiflash_chip_t g_rom_flashchip ;
19+ // ESP8266 contains g_rom_flashchip, but it is in different order than esp_rom_spiflash_chip_t,
20+ // esp_rom_spiflash_config_param might take also different order of parameters but due to missing
21+ // possibility to check in ROM code custom implementation seems like okay solution preventing
22+ // possible future issues.
23+ static esp_rom_spiflash_chip_t g_rom_flashchip_custom = {
24+ .block_size = STUB_FLASH_BLOCK_SIZE ,
25+ .sector_size = STUB_FLASH_SECTOR_SIZE ,
26+ .page_size = STUB_FLASH_PAGE_SIZE ,
27+ .status_mask = STUB_FLASH_STATUS_MASK ,
28+ };
29+
2030extern int esp_rom_spiflash_write (uint32_t flash_addr , const void * data , uint32_t size );
2131extern void esp_rom_spiflash_attach (void );
2232extern void esp_rom_spiflash_select_padsfunc (void );
@@ -31,7 +41,23 @@ void stub_target_reset_default_spi_pins(void)
3141
3242esp_rom_spiflash_chip_t * stub_target_flash_get_config (void )
3343{
34- return & g_rom_flashchip ;
44+ return & g_rom_flashchip_custom ;
45+ }
46+
47+ int stub_target_flash_update_config (uint32_t flash_id ,
48+ uint32_t flash_size ,
49+ uint32_t block_size ,
50+ uint32_t sector_size ,
51+ uint32_t page_size ,
52+ uint32_t status_mask )
53+ {
54+ g_rom_flashchip_custom .flash_id = flash_id ;
55+ g_rom_flashchip_custom .chip_size = flash_size ;
56+ g_rom_flashchip_custom .block_size = block_size ;
57+ g_rom_flashchip_custom .sector_size = sector_size ;
58+ g_rom_flashchip_custom .page_size = page_size ;
59+ g_rom_flashchip_custom .status_mask = status_mask ;
60+ return STUB_LIB_OK ;
3561}
3662
3763void stub_target_flash_attach (uint32_t ishspi , bool legacy )
0 commit comments