Skip to content

Commit 5ff65d4

Browse files
committed
Merge branch 'ficeto-esp8266' into esp8266
* ficeto-esp8266: fix location change add SPIFS support to up to 16MB flash chips
2 parents 207f026 + 6a38d31 commit 5ff65d4

File tree

5 files changed

+55
-0
lines changed

5 files changed

+55
-0
lines changed

boards.txt

+10
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,16 @@ generic.menu.FlashSize.4M.build.flash_size=4M
8585
generic.menu.FlashSize.4M.build.flash_ld=eagle.flash.4m.ld
8686
generic.menu.FlashSize.4M.build.spiffs_start=0x100000
8787
generic.menu.FlashSize.4M.build.spiffs_end=0x3FB000
88+
generic.menu.FlashSize.8M=8M (7M SPIFFS)
89+
generic.menu.FlashSize.8M.build.flash_size=1M
90+
generic.menu.FlashSize.8M.build.flash_ld=eagle.flash.8m.ld
91+
generic.menu.FlashSize.8M.build.spiffs_start=0x100000
92+
generic.menu.FlashSize.8M.build.spiffs_end=0x800000
93+
generic.menu.FlashSize.16M=16M (15M SPIFFS)
94+
generic.menu.FlashSize.16M.build.flash_size=1M
95+
generic.menu.FlashSize.16M.build.flash_ld=eagle.flash.16m.ld
96+
generic.menu.FlashSize.16M.build.spiffs_start=0x100000
97+
generic.menu.FlashSize.16M.build.spiffs_end=0x1000000
8898

8999
# generic.menu.FlashFreq.40=40MHz
90100
# generic.menu.FlashFreq.40.build.flash_freq=40

cores/esp8266/spiffs/spiffs_esp8266.c

+9
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,10 @@
1111
bool flashmem_erase_sector( uint32_t sector_id ){
1212
WDT_RESET();
1313
noInterrupts();
14+
uint32_t chip_size = flashchip->chip_size;
15+
flashchip->chip_size = 0x01000000;
1416
bool erased = spi_flash_erase_sector( sector_id ) == SPI_FLASH_RESULT_OK;
17+
flashchip->chip_size = chip_size;
1518
interrupts();
1619
return erased;
1720
}
@@ -30,7 +33,10 @@ uint32_t flashmem_write_internal( const void *from, uint32_t toaddr, uint32_t si
3033
}
3134
WDT_RESET();
3235
noInterrupts();
36+
uint32_t chip_size = flashchip->chip_size;
37+
flashchip->chip_size = 0x01000000;
3338
r = spi_flash_write(toaddr, apbuf?(uint32 *)apbuf:(uint32 *)from, size);
39+
flashchip->chip_size = chip_size;
3440
interrupts();
3541
if(apbuf)
3642
os_free(apbuf);
@@ -48,7 +54,10 @@ uint32_t flashmem_read_internal( void *to, uint32_t fromaddr, uint32_t size ){
4854
SpiFlashOpResult r;
4955
WDT_RESET();
5056
noInterrupts();
57+
uint32_t chip_size = flashchip->chip_size;
58+
flashchip->chip_size = 0x01000000;
5159
r = spi_flash_read(fromaddr, (uint32 *)to, size);
60+
flashchip->chip_size = chip_size;
5261
interrupts();
5362
if(SPI_FLASH_RESULT_OK == r)
5463
return size;

tools/sdk/include/spi_flash.h

+2
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ typedef struct{
2323

2424
#define SPI_FLASH_SEC_SIZE 4096
2525

26+
extern SpiFlashChip * flashchip; // in ram ROM-BIOS
27+
2628
uint32 spi_flash_get_id(void);
2729
SpiFlashOpResult spi_flash_erase_sector(uint16 sec);
2830
SpiFlashOpResult spi_flash_write(uint32 des_addr, uint32 *src_addr, uint32 size);

tools/sdk/ld/eagle.flash.16m.ld

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
/* Flash Split for 8M chips */
2+
/* irom0 940KB */
3+
/* eeprom 20KB */
4+
/* spiffs 7MB */
5+
6+
MEMORY
7+
{
8+
dport0_0_seg : org = 0x3FF00000, len = 0x10
9+
dram0_0_seg : org = 0x3FFE8000, len = 0x14000
10+
iram1_0_seg : org = 0x40100000, len = 0x8000
11+
irom0_0_seg : org = 0x40210000, len = 0xEB000
12+
}
13+
14+
PROVIDE ( _SPIFFS_start = 0x40300000 );
15+
PROVIDE ( _SPIFFS_end = 0x40A00000 );
16+
17+
INCLUDE "../ld/eagle.app.v6.common.ld"

tools/sdk/ld/eagle.flash.8m.ld

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
/* Flash Split for 16M chips */
2+
/* irom0 940KB */
3+
/* eeprom 20KB */
4+
/* spiffs 15MB */
5+
6+
MEMORY
7+
{
8+
dport0_0_seg : org = 0x3FF00000, len = 0x10
9+
dram0_0_seg : org = 0x3FFE8000, len = 0x14000
10+
iram1_0_seg : org = 0x40100000, len = 0x8000
11+
irom0_0_seg : org = 0x40210000, len = 0xEB000
12+
}
13+
14+
PROVIDE ( _SPIFFS_start = 0x40300000 );
15+
PROVIDE ( _SPIFFS_end = 0x41200000 );
16+
17+
INCLUDE "../ld/eagle.app.v6.common.ld"

0 commit comments

Comments
 (0)