From 91c95a5a5eb6da5f08538ac157cbf297989aacc7 Mon Sep 17 00:00:00 2001 From: Julian Davison Date: Wed, 4 Jan 2017 19:56:14 +1300 Subject: [PATCH 01/17] WIP: Flash-stored OTA commands --- boards.txt | 44 ++++ bootloaders/eboot/Makefile | 2 +- bootloaders/eboot/eboot.c | 82 ++++++- bootloaders/eboot/eboot_command.c | 211 +++++++++++++++++- bootloaders/eboot/eboot_command.h | 36 ++- cores/esp8266/Esp.cpp | 5 + cores/esp8266/Updater.cpp | 7 + cores/esp8266/core_esp8266_eboot_command.cpp | 200 ++++++++++++++++- cores/esp8266/eboot_command.h | 36 ++- cores/esp8266/umm_malloc/umm_malloc_cfg.h | 2 + .../ESP8266WiFi/src/WiFiClientSecureAxTLS.cpp | 2 + platform.txt | 2 +- programmers.txt | 4 + tools/sdk/ld/eagle.app.v6.common.ld.h | 2 + 14 files changed, 608 insertions(+), 27 deletions(-) diff --git a/boards.txt b/boards.txt index ff7f8e6630..1deabb49ab 100644 --- a/boards.txt +++ b/boards.txt @@ -2720,6 +2720,50 @@ nodemcuv2.menu.baud.921600.upload.speed=921600 nodemcuv2.menu.baud.3000000=3000000 nodemcuv2.menu.baud.3000000.upload.speed=3000000 + + + +nodemcuv2.menu.Debug.Disabled=Disabled +nodemcuv2.menu.Debug.Disabled.build.debug_port= +nodemcuv2.menu.Debug.Serial=Serial +nodemcuv2.menu.Debug.Serial.build.debug_port=-DDEBUG_ESP_PORT=Serial +nodemcuv2.menu.Debug.Serial1=Serial1 +nodemcuv2.menu.Debug.Serial1.build.debug_port=-DDEBUG_ESP_PORT=Serial1 + +nodemcuv2.menu.DebugLevel.None____=None +nodemcuv2.menu.DebugLevel.None____.build.debug_level= +nodemcuv2.menu.DebugLevel.Core____=Core +nodemcuv2.menu.DebugLevel.Core____.build.debug_level=-DDEBUG_ESP_CORE +nodemcuv2.menu.DebugLevel.SSL_____=Core + SSL +nodemcuv2.menu.DebugLevel.SSL_____.build.debug_level=-DDEBUG_ESP_CORE -DDEBUG_ESP_SSL +nodemcuv2.menu.DebugLevel.SSL_MEM_=Core + SSL + TLS Mem +nodemcuv2.menu.DebugLevel.SSL_MEM_.build.debug_level=-DDEBUG_ESP_CORE -DDEBUG_ESP_SSL -DDEBUG_TLS_MEM +nodemcuv2.menu.DebugLevel.WiFic___=Core + WiFi +nodemcuv2.menu.DebugLevel.WiFic___.build.debug_level=-DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI +nodemcuv2.menu.DebugLevel.WiFi____=WiFi +nodemcuv2.menu.DebugLevel.WiFi____.build.debug_level=-DDEBUG_ESP_WIFI +nodemcuv2.menu.DebugLevel.HTTPClient=HTTPClient +nodemcuv2.menu.DebugLevel.HTTPClient.build.debug_level=-DDEBUG_ESP_HTTP_CLIENT +nodemcuv2.menu.DebugLevel.HTTPClient2=HTTPClient + SSL +nodemcuv2.menu.DebugLevel.HTTPClient2.build.debug_level=-DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_SSL +nodemcuv2.menu.DebugLevel.HTTPUpdate=HTTPUpdate +nodemcuv2.menu.DebugLevel.HTTPUpdate.build.debug_level=-DDEBUG_ESP_HTTP_UPDATE +nodemcuv2.menu.DebugLevel.HTTPUpdate2=HTTPClient + HTTPUpdate +nodemcuv2.menu.DebugLevel.HTTPUpdate2.build.debug_level=-DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_HTTP_UPDATE +nodemcuv2.menu.DebugLevel.HTTPUpdate3=HTTPClient + HTTPUpdate + Updater +nodemcuv2.menu.DebugLevel.HTTPUpdate3.build.debug_level=-DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER +nodemcuv2.menu.DebugLevel.HTTPServer=HTTPServer +nodemcuv2.menu.DebugLevel.HTTPServer.build.debug_level=-DDEBUG_ESP_HTTP_SERVER +nodemcuv2.menu.DebugLevel.UPDATER=Updater +nodemcuv2.menu.DebugLevel.UPDATER.build.debug_level=-DDEBUG_ESP_UPDATER +nodemcuv2.menu.DebugLevel.OTA_____=OTA +nodemcuv2.menu.DebugLevel.OTA_____.build.debug_level=-DDEBUG_ESP_OTA +nodemcuv2.menu.DebugLevel.OTA2____=OTA + Updater +nodemcuv2.menu.DebugLevel.OTA2____.build.debug_level=-DDEBUG_ESP_OTA -DDEBUG_ESP_UPDATER +nodemcuv2.menu.DebugLevel.all_____=All +nodemcuv2.menu.DebugLevel.all_____.build.debug_level=-DDEBUG_ESP_CORE -DDEBUG_ESP_SSL -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_HTTP_SERVER -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_TLS_MEM + + ############################################################## modwifi.name=Olimex MOD-WIFI-ESP8266(-DEV) modwifi.build.board=MOD_WIFI_ESP8266 diff --git a/bootloaders/eboot/Makefile b/bootloaders/eboot/Makefile index 3e25eb139e..bf0dc183ee 100644 --- a/bootloaders/eboot/Makefile +++ b/bootloaders/eboot/Makefile @@ -18,7 +18,7 @@ LD := $(XTENSA_TOOLCHAIN)xtensa-lx106-elf-gcc OBJDUMP := $(XTENSA_TOOLCHAIN)xtensa-lx106-elf-objdump INC += -I../../tools/sdk/include -CFLAGS += -std=gnu99 +CFLAGS += -std=gnu99 -DEBOOT_ENABLE_FLASH_STORAGE CFLAGS += -O0 -g -Wpointer-arith -Wno-implicit-function-declaration -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mno-text-section-literals diff --git a/bootloaders/eboot/eboot.c b/bootloaders/eboot/eboot.c index 69bc692e97..2c6082db3b 100644 --- a/bootloaders/eboot/eboot.c +++ b/bootloaders/eboot/eboot.c @@ -32,15 +32,65 @@ int print_version(const uint32_t flash_addr) return 0; } +int print_flags(const uint32_t flash_addr) +{ + const char* __attribute__ ((aligned (4))) fmtt = "#%08x\n\0\0"; + uint32_t ver, i; + uint32_t fmt[2]; + eboot_flash_command_t cmd; + fmt[0] = ((uint32_t*) fmtt)[0]; + fmt[1] = ((uint32_t*) fmtt)[1]; + ver = commandAddress(); + ets_putc('<'); + ets_printf((const char*) fmt, ver); + ets_putc('\n'); + for (i = 0; i < 8; i++) { + ets_putc('0' + i); + ets_putc(':'); + readBootCommand(i, &cmd); + ets_printf((const char*) fmt, cmd.flags); + } + ets_putc('D'); + ets_putc('o'); + ets_putc('n'); + ets_putc('e'); + ets_putc('!'); + ets_putc('\n'); + return 0; +} + +int find_app_start(const uint32_t flash_addr) +{ + image_header_t image_header; + uint32_t pos = flash_addr; + uint8_t count = 0; + + do { + pos += APP_START_OFFSET; + if (SPIRead(pos, &image_header, sizeof(image_header))) { + return 0; + } + count += 1; + } while ((image_header.magic != 0xe9) && (count < 4)); + return pos; +} + int load_app_from_flash_raw(const uint32_t flash_addr) { image_header_t image_header; - uint32_t pos = flash_addr + APP_START_OFFSET; + uint32_t pos = find_app_start(flash_addr); + const char* __attribute__ ((aligned (4))) fmtt = "l:%08x\n\0"; + uint32_t ver, i; + uint32_t fmt[2]; + fmt[0] = ((uint32_t*) fmtt)[0]; + fmt[1] = ((uint32_t*) fmtt)[1]; - if (SPIRead(pos, &image_header, sizeof(image_header))) { + ets_printf((const char*) fmt, pos); + if (SPIRead(pos, &image_header, sizeof(image_header))) { return 1; } pos += sizeof(image_header); + ets_printf((const char*) fmt, pos); for (uint32_t section_index = 0; @@ -55,6 +105,13 @@ int load_app_from_flash_raw(const uint32_t flash_addr) const uint32_t address = section_header.address; + ets_putc('f'); + ets_printf((const char*) fmt, pos); + ets_putc('t'); + ets_printf((const char*) fmt, address); + ets_putc('s'); + ets_printf((const char*) fmt, section_header.size); + bool load = false; if (address < 0x40000000) { @@ -74,8 +131,14 @@ int load_app_from_flash_raw(const uint32_t flash_addr) continue; } + ets_putc('l'); + ets_putc('o'); + if (SPIRead(pos, (void*)address, section_header.size)) return 3; + ets_putc('a'); + ets_putc('d'); + ets_putc('\n'); pos += section_header.size; } @@ -93,6 +156,18 @@ int copy_raw(const uint32_t src_addr, const uint32_t dst_addr, const uint32_t size) { + const char* __attribute__ ((aligned (4))) fmtt = ":%08x\n\0\0"; + uint32_t fmt[2]; + fmt[0] = ((uint32_t*) fmtt)[0]; + fmt[1] = ((uint32_t*) fmtt)[1]; + + ets_putc('S'); + ets_printf((const char*) fmt, src_addr); + ets_putc('D'); + ets_printf((const char*) fmt, dst_addr); + ets_putc('B'); + ets_printf((const char*) fmt, size); + // require regions to be aligned if (src_addr & 0xfff != 0 || dst_addr & 0xfff != 0) { @@ -131,10 +206,10 @@ void main() struct eboot_command cmd; print_version(0); + print_flags(0); if (eboot_command_read(&cmd) == 0) { // valid command was passed via RTC_MEM - eboot_command_clear(); ets_putc('@'); } else { // no valid command found @@ -150,6 +225,7 @@ void main() ets_wdt_enable(); ets_putc('0'+res); ets_putc('\n'); if (res == 0) { + eboot_command_clear(); cmd.action = ACTION_LOAD_APP; cmd.args[0] = cmd.args[1]; } diff --git a/bootloaders/eboot/eboot_command.c b/bootloaders/eboot/eboot_command.c index 648039e48a..b0800b6fe6 100644 --- a/bootloaders/eboot/eboot_command.c +++ b/bootloaders/eboot/eboot_command.c @@ -1,4 +1,5 @@ #include "eboot_command.h" +#include "flash.h" uint32_t crc_update(uint32_t crc, const uint8_t *data, size_t length) { @@ -28,7 +29,147 @@ uint32_t eboot_command_calculate_crc32(const struct eboot_command* cmd) offsetof(struct eboot_command, crc32)); } -int eboot_command_read(struct eboot_command* cmd) +#if defined (EBOOT_ENABLE_FLASH_STORAGE) + +uint32_t eboot_read_flash_index(eboot_index_t *eboot_index) +{ + if (SPIRead(0 + APP_START_OFFSET + sizeof(image_header_t) + sizeof(section_header_t), &eboot_index, sizeof(eboot_index))) { + return 0; + } + + if (eboot_index->magic != EBOOT_INDEX_MAGIC_V1) { + return 0; + } + + return 1; +} + +eboot_flash_command_t *commandAddress(void) { + eboot_index_t eboot_index; + const uint32_t addr = 0 + APP_START_OFFSET + sizeof(image_header_t) + sizeof(section_header_t); + if (SPIRead(addr, (uint32_t *)&eboot_index, sizeof(eboot_index))) { + return NULL; + } + if (eboot_index.magic != EBOOT_INDEX_MAGIC_V1) { + return NULL; + } else { + return eboot_index.commands; + } +} + +bool readBootCommand(int cmd, eboot_flash_command_t *dst) { + eboot_flash_command_t *cmds = commandAddress(); + if (cmd >= EBOOT_COMMAND_MAX_COUNT) { + return 0; + } + ets_putc('r'); + ets_putc('b'); + ets_putc('0' + cmd); + ets_putc('\n'); + uint32_t uint = (uint32_t) cmds; + uint32_t addr = (uint32_t)cmds - 0x40200000; + addr += cmd * sizeof(*dst); + if (SPIRead(addr, (uint32_t *)dst, sizeof(*dst))) { + return 0; + } +} + +bool writeBootCommand(int cmd, eboot_flash_command_t *dst) { + eboot_flash_command_t *cmds = commandAddress(); + if (cmd >= EBOOT_COMMAND_MAX_COUNT) { + return 0; + } + ets_putc('w'); + ets_putc('b'); + ets_putc('0' + cmd); + ets_putc('\n'); + uint32_t uint = (uint32_t) cmds; + uint32_t addr = (uint32_t)cmds - 0x40200000; + addr += cmd * sizeof(*dst); + if (SPIWrite(addr, (uint32_t *)dst, sizeof(*dst))) { + return 0; + } +} + +uint32_t eboot_command_read_from_flash(struct eboot_command *cmd) +{ + + eboot_flash_command_t flash_command; + uint32_t i, *src, *dst = (uint32_t *)cmd; + const uint32_t dw_count = sizeof(struct eboot_command) / sizeof(uint32_t); + // ets_printf("Reading command from flash: %p\n", cmd); + + for (i = 0; i < EBOOT_COMMAND_MAX_COUNT; i++) { + // ets_printf("Read bootCommand %d, flags: %x\n", i, flash_command.flags); + readBootCommand(i, &flash_command); + // ets_printf("Read bootCommand %d, flags: %x\n", i, flash_command.flags); + if (((flash_command.flags & EBOOT_CMD_FLAG_SLOT_FREE) == 0) && + ((flash_command.flags & EBOOT_CMD_FLAG_PENDING) == EBOOT_CMD_FLAG_PENDING)) { + // Not free (meaning there's some data) and pending (so it's yet to be completed) + ets_putc('r'); + ets_putc('c'); + ets_putc('0' + i); + ets_putc('\n'); + src = (uint32_t *)&flash_command.cmd; + for (uint32_t j = 0; j < dw_count; ++j) { + dst[j] = src[j]; + } + // ets_printf("Returning bootCommand %d, flags: %x\n", i, flash_command.flags); + return 1; + } + } + return 0; +} + +uint32_t eboot_command_write_to_flash(struct eboot_command *cmd) +{ + eboot_flash_command_t flash_command; + uint32_t i, *dst, *src = (uint32_t *)cmd; + const uint32_t dw_count = sizeof(struct eboot_command) / sizeof(uint32_t); + + for (i = 0; i < EBOOT_COMMAND_MAX_COUNT; i++) { + readBootCommand(i, &flash_command); + if (((flash_command.flags & EBOOT_CMD_FLAG_SLOT_FREE) == EBOOT_CMD_FLAG_SLOT_FREE) && + ((flash_command.flags & EBOOT_CMD_FLAG_PENDING) == EBOOT_CMD_FLAG_PENDING)) { + ets_putc('w'); + ets_putc('c'); + ets_putc('0' + i); + ets_putc('\n'); + dst = (uint32_t *)&flash_command.cmd; + for (uint32_t j = 0; j < dw_count; ++j) { + dst[j] = src[j]; + } + flash_command.flags &= ~EBOOT_CMD_FLAG_SLOT_FREE; + writeBootCommand(i, &flash_command); + return 1; + } + } + return 0; +} + +uint32_t eboot_command_clear_flash(void) +{ + eboot_flash_command_t flash_command; + uint32_t i; + + for (i = 0; i < EBOOT_COMMAND_MAX_COUNT; i++) { + readBootCommand(i, &flash_command); + if (((flash_command.flags & EBOOT_CMD_FLAG_SLOT_FREE) == 0) && + ((flash_command.flags & EBOOT_CMD_FLAG_PENDING) == EBOOT_CMD_FLAG_PENDING)) { + flash_command.flags &= ~EBOOT_CMD_FLAG_PENDING; + // ets_printf("Clearing bootCommand %d, flags: %x\n", i, flash_command.flags); + ets_wdt_disable(); + writeBootCommand(i, &flash_command); + ets_wdt_enable(); + return 1; + } + } + return 0; +} + +#endif // EBOOT_ENABLE_FLASH_STORAGE + +int eboot_command_read_from_rtc(struct eboot_command *cmd) { const uint32_t dw_count = sizeof(struct eboot_command) / sizeof(uint32_t); uint32_t* dst = (uint32_t *) cmd; @@ -36,12 +177,61 @@ int eboot_command_read(struct eboot_command* cmd) dst[i] = RTC_MEM[i]; } + return 0; +} + +int eboot_command_write_to_rtc(struct eboot_command *cmd) +{ + const uint32_t dw_count = sizeof(struct eboot_command) / sizeof(uint32_t); + const uint32_t* src = (const uint32_t *) cmd; + for (uint32_t i = 0; i < dw_count; ++i) { + RTC_MEM[i] = src[i]; + } +} + +void eboot_command_clear_rtc(void) +{ + RTC_MEM[offsetof(struct eboot_command, magic) / sizeof(uint32_t)] = 0; + RTC_MEM[offsetof(struct eboot_command, crc32) / sizeof(uint32_t)] = 0; +} + +int eboot_command_read(struct eboot_command* cmd) +{ + uint32_t have_command = 0; + uint32_t count = 0; +#if defined (EBOOT_ENABLE_FLASH_STORAGE) + ets_putc('F'); + ets_putc(':'); + have_command = eboot_command_read_from_flash(cmd); + ets_putc('0' + have_command); + ets_putc('\n'); +#endif // EBOOT_ENABLE_FLASH_STORAGE + if (have_command == 0) { + ets_putc('R'); + ets_putc('-'); + eboot_command_read_from_rtc(cmd); + count = cmd->args[28]; + cmd->args[28] = 0; + ets_putc('0' + count); + ets_putc('\n'); + } + uint32_t crc32 = eboot_command_calculate_crc32(cmd); if (cmd->magic & EBOOT_MAGIC_MASK != EBOOT_MAGIC || cmd->crc32 != crc32) { return 1; } + if (count >= 3) { + ets_putc('R'); + ets_putc('>'); + ets_putc('!'); + ets_putc('\n'); + return 1; + } + + cmd->args[28] = count + 1; + eboot_command_write_to_rtc(cmd); return 0; } @@ -49,17 +239,20 @@ void eboot_command_write(struct eboot_command* cmd) { cmd->magic = EBOOT_MAGIC; cmd->crc32 = eboot_command_calculate_crc32(cmd); - - const uint32_t dw_count = sizeof(struct eboot_command) / sizeof(uint32_t); - const uint32_t* src = (const uint32_t *) cmd; - for (uint32_t i = 0; i < dw_count; ++i) { - RTC_MEM[i] = src[i]; - } +#if defined (EBOOT_ENABLE_FLASH_STORAGE) + eboot_command_write_to_flash(cmd); +#endif // EBOOT_ENABLE_FLASH_STORAGE + eboot_command_write_to_rtc(cmd); } void eboot_command_clear() { - RTC_MEM[offsetof(struct eboot_command, magic) / sizeof(uint32_t)] = 0; - RTC_MEM[offsetof(struct eboot_command, crc32) / sizeof(uint32_t)] = 0; + uint32_t cleared = 0; +#if defined (EBOOT_ENABLE_FLASH_STORAGE) + cleared = eboot_command_clear_flash(); +#endif // EBOOT_ENABLE_FLASH_STORAGE + if (cleared > 0) { + eboot_command_clear_rtc(); + } } diff --git a/bootloaders/eboot/eboot_command.h b/bootloaders/eboot/eboot_command.h index ba9c889a2c..dd9b092199 100644 --- a/bootloaders/eboot/eboot_command.h +++ b/bootloaders/eboot/eboot_command.h @@ -22,13 +22,45 @@ enum action_t { #define EBOOT_MAGIC 0xeb001000 #define EBOOT_MAGIC_MASK 0xfffff000 -struct eboot_command { +typedef struct eboot_command { uint32_t magic; enum action_t action; uint32_t args[29]; uint32_t crc32; -}; +} eboot_command_t; + + +#if defined (EBOOT_ENABLE_FLASH_STORAGE) +// Magic for version 1 corresponds to AR01 +#define EBOOT_INDEX_MAGIC_V1 0x31305241 +#define EBOOT_COMMAND_MAX_COUNT 8 + + +#define FLASH_SECTOR_SIZE 0x1000 + + +/* A command is ready to be actioned if it is both + * Not free (SLOT_FREE == 0) AND + * pending (PENDING == 1) +*/ + +// Is the slot available for new command data (1 == Yes; 0 == It's been used, so No) +#define EBOOT_CMD_FLAG_SLOT_FREE (1 << 0) +// Has the command been actioned (1 == No, needs to be actioned; 0 == It's been completed) +#define EBOOT_CMD_FLAG_PENDING (1 << 1) + +typedef struct eboot_flash_command { + uint32_t flags; + eboot_command_t cmd; +} eboot_flash_command_t; + +typedef struct eboot_index { + uint32_t version; + uint32_t magic; + eboot_flash_command_t *commands; +} eboot_index_t; +#endif // EBOOT_ENABLE_FLASH_STORAGE int eboot_command_read(struct eboot_command* cmd); void eboot_command_write(struct eboot_command* cmd); diff --git a/cores/esp8266/Esp.cpp b/cores/esp8266/Esp.cpp index a21dc4bc0f..eee22e5421 100644 --- a/cores/esp8266/Esp.cpp +++ b/cores/esp8266/Esp.cpp @@ -520,6 +520,8 @@ uint32_t EspClass::getSketchSize() { } extern "C" uint32_t _FS_start; +extern "C" uint32_t _SKETCH_AREA_end; +// Merged Conflict To Resolve uint32_t EspClass::getFreeSketchSpace() { @@ -527,6 +529,9 @@ uint32_t EspClass::getFreeSketchSpace() { // round one sector up uint32_t freeSpaceStart = (usedSize + FLASH_SECTOR_SIZE - 1) & (~(FLASH_SECTOR_SIZE - 1)); uint32_t freeSpaceEnd = (uint32_t)&_FS_start - 0x40200000; + uint32_t freeSpaceEnd = (uint32_t)&_SKETCH_AREA_end - 0x40200000; + // Merged Conflict To Resolve + #ifdef DEBUG_SERIAL DEBUG_SERIAL.printf("usedSize=%u freeSpaceStart=%u freeSpaceEnd=%u\r\n", usedSize, freeSpaceStart, freeSpaceEnd); diff --git a/cores/esp8266/Updater.cpp b/cores/esp8266/Updater.cpp index d6b6b621f5..34a5dc9868 100644 --- a/cores/esp8266/Updater.cpp +++ b/cores/esp8266/Updater.cpp @@ -23,6 +23,10 @@ extern "C" { } extern "C" uint32_t _FS_start; +extern "C" uint32_t _SKETCH_AREA_end; +extern "C" uint32_t _SPIFFS_start; +// Merged Conflict To Resolve + UpdaterClass::UpdaterClass() : _async(false) @@ -111,6 +115,9 @@ bool UpdaterClass::begin(size_t size, int command, int ledPin, uint8_t ledOn) { size_t currentSketchSize = (ESP.getSketchSize() + FLASH_SECTOR_SIZE - 1) & (~(FLASH_SECTOR_SIZE - 1)); //address of the end of the space available for sketch and update uintptr_t updateEndAddress = (uintptr_t)&_FS_start - 0x40200000; + uint32_t updateEndAddress = (uint32_t)&_SKETCH_AREA_end - 0x40200000; + // Merged Conflict To Resolve + //size of the update rounded to a sector size_t roundedSize = (size + FLASH_SECTOR_SIZE - 1) & (~(FLASH_SECTOR_SIZE - 1)); //address where we will start writing the update diff --git a/cores/esp8266/core_esp8266_eboot_command.cpp b/cores/esp8266/core_esp8266_eboot_command.cpp index 2ddc65933e..178ba4018a 100644 --- a/cores/esp8266/core_esp8266_eboot_command.cpp +++ b/cores/esp8266/core_esp8266_eboot_command.cpp @@ -22,6 +22,7 @@ #include #include #include "coredecls.h" +#include #include "eboot_command.h" @@ -32,7 +33,157 @@ static uint32_t eboot_command_calculate_crc32(const struct eboot_command* cmd) return crc32((const uint8_t*) cmd, offsetof(struct eboot_command, crc32)); } -int eboot_command_read(struct eboot_command* cmd) +#if defined (EBOOT_ENABLE_FLASH_STORAGE) + +uint32_t eboot_get_flash_block_size(void) { + return 2 * 4 * 1024; +} + +uint32_t eboot_read_flash_index(eboot_index_t *eboot_index) +{ + if (spi_flash_read(0 + APP_START_OFFSET + sizeof(image_header_t) + sizeof(section_header_t), (uint32_t *) &eboot_index, sizeof(eboot_index)) != 0) { + return 0; + } + + if (eboot_index->magic != EBOOT_INDEX_MAGIC_V1) { + return 0; + } + + return 1; +} + +eboot_flash_command_t *commandAddress(void) { + eboot_index_t eboot_index; + const uint32_t addr = 0 + APP_START_OFFSET + sizeof(image_header_t) + sizeof(section_header_t); + ets_printf("commandAddress: %p\n", addr); + if (spi_flash_read(addr, (uint32_t *)&eboot_index, sizeof(eboot_index)) != 0) { + ets_printf("failed to read SPI\n"); + return NULL; + } + if (eboot_index.magic != EBOOT_INDEX_MAGIC_V1) { + ets_printf("failed to find MAGIC value (had %x)\n", eboot_index.magic); + return NULL; + } else { + return eboot_index.commands; + } +} + +bool readBootCommand(int cmd, eboot_flash_command_t *dst) { + eboot_flash_command_t *cmds = commandAddress(); + if (cmds == 0) { + return 0; + } + ets_printf("Reading command %d from flash: %p\n", cmd, cmds); + if (cmd >= EBOOT_COMMAND_MAX_COUNT) { + return 0; + } + uint32_t uint = (uint32_t) cmds; + uint32_t addr = (uint32_t)cmds - 0x40200000; + addr += cmd * sizeof(*dst); + ets_printf("Reading command %d from flash @ %p\n", cmd, addr); + if (spi_flash_read(addr, (uint32_t *)dst, sizeof(*dst))) { + return 0; + } + return 1; +} + +bool writeBootCommand(int cmd, eboot_flash_command_t *dst) { + eboot_flash_command_t *cmds = commandAddress(); + ets_printf("!Writing command %d to flash: %p\n", cmd, cmds); + if (cmd >= EBOOT_COMMAND_MAX_COUNT) { + return 0; + } + uint32_t uint = (uint32_t) cmds; + uint32_t addr = (uint32_t)cmds - 0x40200000; + addr += cmd * sizeof(*dst); + ets_printf("Writing command %d to flash @ %p\n", cmd, addr); + if (spi_flash_write(addr, (uint32_t *)dst, sizeof(*dst))) { + return 0; + } +} + +bool eraseBootCommandBlock(void) { + eboot_flash_command_t *cmds = commandAddress(); + uint32_t addr = (uint32_t)cmds - 0x40200000; + ets_printf("Erasing command block at %p\n", addr); + if (spi_flash_erase_sector(addr / FLASH_SECTOR_SIZE)) { + return 0; + } + return 1; +} + +uint32_t eboot_command_read_from_flash(struct eboot_command *cmd) +{ + eboot_index_t eboot_index; + eboot_flash_command_t *flash_command; + uint32_t i; + const uint32_t dw_count = sizeof(struct eboot_command) / sizeof(uint32_t); + + if (!eboot_read_flash_index(&eboot_index)) { + return 0; + } else { + flash_command = eboot_index.commands; + for (i = 0; i < EBOOT_COMMAND_MAX_COUNT; i++) { + if (((flash_command->flags & EBOOT_CMD_FLAG_SLOT_FREE) == 0) && + ((flash_command->flags & EBOOT_CMD_FLAG_PENDING) == EBOOT_CMD_FLAG_PENDING)) { + // This is a valid command waiting to be actioned, or should be. The CRC check will determine if it's actually valid + uint32_t* dst = (uint32_t *) cmd; + // uint32_t* src = (uint32_t *) flash_command->cmd; + // for (uint32_t i = 0; i < dw_count; ++i) { + // dst[i] = src[i]; + // } + return 1; + } + } + } + return 0; +} + +uint32_t eboot_command_write_to_flash(struct eboot_command *cmd) +{ + eboot_flash_command_t flash_command; + uint32_t i, *dst, *src = (uint32_t *)cmd; + int32_t target_command_slot = -1; + const uint32_t dw_count = sizeof(struct eboot_command) / sizeof(uint32_t); + ets_printf("Writing command to flash: %p\n", cmd); + + for (i = 0; i < EBOOT_COMMAND_MAX_COUNT; i++) { + ets_printf("Read bootCommand %d, flags: %x\n", i, flash_command.flags); + if (readBootCommand(i, &flash_command) == 0) { + ets_printf("Reading bootCommand %d failed!\n", i); + } else { + ets_printf("Read bootCommand %d, flags: %x\n", i, flash_command.flags); + if (((flash_command.flags & EBOOT_CMD_FLAG_SLOT_FREE) == EBOOT_CMD_FLAG_SLOT_FREE) && + ((flash_command.flags & EBOOT_CMD_FLAG_PENDING) == EBOOT_CMD_FLAG_PENDING)) { + target_command_slot = i; + break; + } + } + } + if (target_command_slot == -1) { + // We didn't find a free slot. Assume this is due to the slots being all used, + // so erase the storage page + if (eraseBootCommandBlock() != 1) { + return 0; + } + // Block is now clear, so we can use the first slot + target_command_slot = 0; + // And reinitialise our block to a blank one. + readBootCommand(target_command_slot, &flash_command); + } + dst = (uint32_t *)&flash_command.cmd; + for (uint32_t j = 0; j < dw_count; ++j) { + dst[j] = src[j]; + } + flash_command.flags &= ~EBOOT_CMD_FLAG_SLOT_FREE; + ets_printf("Writing command %d to flash: %p\n", target_command_slot, cmd); + writeBootCommand(target_command_slot, &flash_command); + return 1; +} + +#endif // EBOOT_ENABLE_FLASH_STORAGE + +int eboot_command_read_from_rtc(struct eboot_command *cmd) { const uint32_t dw_count = sizeof(struct eboot_command) / sizeof(uint32_t); uint32_t* dst = (uint32_t *) cmd; @@ -40,8 +191,36 @@ int eboot_command_read(struct eboot_command* cmd) dst[i] = RTC_MEM[i]; } + return 0; +} + +int eboot_command_write_to_rtc(struct eboot_command *cmd) +{ + const uint32_t dw_count = sizeof(struct eboot_command) / sizeof(uint32_t); + const uint32_t* src = (const uint32_t *) cmd; + for (uint32_t i = 0; i < dw_count; ++i) { + RTC_MEM[i] = src[i]; + } +} + +void eboot_command_clear_rtc(void) +{ + RTC_MEM[offsetof(struct eboot_command, magic) / sizeof(uint32_t)] = 0; + RTC_MEM[offsetof(struct eboot_command, crc32) / sizeof(uint32_t)] = 0; +} + +int eboot_command_read(struct eboot_command* cmd) +{ + uint32_t have_command = 0; +#if defined (EBOOT_ENABLE_FLASH_STORAGE) + // have_command = eboot_command_read_from_flash(cmd); +#endif // EBOOT_ENABLE_FLASH_STORAGE + if (have_command == 0) { + eboot_command_read_from_rtc(cmd); + } + uint32_t crc32 = eboot_command_calculate_crc32(cmd); - if ((cmd->magic & EBOOT_MAGIC_MASK) != EBOOT_MAGIC || + if (cmd->magic & EBOOT_MAGIC_MASK != EBOOT_MAGIC || cmd->crc32 != crc32) { return 1; } @@ -51,20 +230,23 @@ int eboot_command_read(struct eboot_command* cmd) void eboot_command_write(struct eboot_command* cmd) { + uint32_t saved = 0; cmd->magic = EBOOT_MAGIC; cmd->crc32 = eboot_command_calculate_crc32(cmd); - - const uint32_t dw_count = sizeof(struct eboot_command) / sizeof(uint32_t); - const uint32_t* src = (const uint32_t *) cmd; - for (uint32_t i = 0; i < dw_count; ++i) { - RTC_MEM[i] = src[i]; + ets_printf("Writing command: %p\n", cmd); +#if defined (EBOOT_ENABLE_FLASH_STORAGE) + saved = eboot_command_write_to_flash(cmd); +#endif // EBOOT_ENABLE_FLASH_STORAGE + if (saved == 0) { + eboot_command_write_to_rtc(cmd); } } void eboot_command_clear() { - RTC_MEM[offsetof(struct eboot_command, magic) / sizeof(uint32_t)] = 0; - RTC_MEM[offsetof(struct eboot_command, crc32) / sizeof(uint32_t)] = 0; +#if defined (EBOOT_ENABLE_FLASH_STORAGE) +#endif // EBOOT_ENABLE_FLASH_STORAGE + eboot_command_clear_rtc(); } }; diff --git a/cores/esp8266/eboot_command.h b/cores/esp8266/eboot_command.h index 3d854afba3..62e20491f2 100644 --- a/cores/esp8266/eboot_command.h +++ b/cores/esp8266/eboot_command.h @@ -17,13 +17,45 @@ enum action_t { #define EBOOT_MAGIC 0xeb001000 #define EBOOT_MAGIC_MASK 0xfffff000 -struct eboot_command { +typedef struct eboot_command { uint32_t magic; enum action_t action; uint32_t args[29]; uint32_t crc32; -}; +} eboot_command_t; + + +#if defined (EBOOT_ENABLE_FLASH_STORAGE) +// Magic for version 1 corresponds to AR01 +#define EBOOT_INDEX_MAGIC_V1 0x31305241 +#define EBOOT_COMMAND_MAX_COUNT 8 + + +#define FLASH_SECTOR_SIZE 0x1000 + + +/* A command is ready to be actioned if it is both + * Not free (SLOT_FREE == 0) AND + * pending (PENDING == 1) +*/ + +// Is the slot available for new command data (1 == Yes; 0 == It's been used, so No) +#define EBOOT_CMD_FLAG_SLOT_FREE (1 << 0) +// Has the command been actioned (1 == No, needs to be actioned; 0 == It's been completed) +#define EBOOT_CMD_FLAG_PENDING (1 << 1) + +typedef struct eboot_flash_command { + uint32_t flags; + eboot_command_t cmd; +} eboot_flash_command_t; + +typedef struct eboot_index { + uint32_t version; + uint32_t magic; + eboot_flash_command_t *commands; +} eboot_index_t; +#endif // EBOOT_ENABLE_FLASH_STORAGE int eboot_command_read(struct eboot_command* cmd); void eboot_command_write(struct eboot_command* cmd); diff --git a/cores/esp8266/umm_malloc/umm_malloc_cfg.h b/cores/esp8266/umm_malloc/umm_malloc_cfg.h index 39d5897cc9..b01d07c89d 100644 --- a/cores/esp8266/umm_malloc/umm_malloc_cfg.h +++ b/cores/esp8266/umm_malloc/umm_malloc_cfg.h @@ -187,6 +187,8 @@ extern char _heap_start[]; * callback is called: `UMM_HEAP_CORRUPTION_CB()` */ +#define DEBUG_ESP_PORT Serial + #if defined(DEBUG_ESP_PORT) || defined(DEBUG_ESP_CORE) #define UMM_POISON #endif diff --git a/libraries/ESP8266WiFi/src/WiFiClientSecureAxTLS.cpp b/libraries/ESP8266WiFi/src/WiFiClientSecureAxTLS.cpp index 62b7f0ab8c..353ccd2e0d 100644 --- a/libraries/ESP8266WiFi/src/WiFiClientSecureAxTLS.cpp +++ b/libraries/ESP8266WiFi/src/WiFiClientSecureAxTLS.cpp @@ -27,6 +27,8 @@ #include "WiFiClientSecure.h" #include "WiFiClient.h" +#define DEBUG_ESP_SSL + #ifdef DEBUG_ESP_SSL #define DEBUG_SSL #endif diff --git a/platform.txt b/platform.txt index 8bccbe2afc..31e8850344 100644 --- a/platform.txt +++ b/platform.txt @@ -72,7 +72,7 @@ compiler.elf2hex.flags= compiler.size.cmd=xtensa-lx106-elf-size # This can be overriden in boards.txt -build.extra_flags=-DESP8266 +build.extra_flags=-DESP8266 -DEBOOT_ENABLE_FLASH_STORAGE # These can be overridden in platform.local.txt compiler.c.extra_flags= diff --git a/programmers.txt b/programmers.txt index e69de29bb2..17e0b5f0a0 100644 --- a/programmers.txt +++ b/programmers.txt @@ -0,0 +1,4 @@ +strobeloader.name=StrobeLoader +#strobeloader.protocol=tcp +strobeloader.program.tool=sl +strobeloader.program.extra_params= diff --git a/tools/sdk/ld/eagle.app.v6.common.ld.h b/tools/sdk/ld/eagle.app.v6.common.ld.h index 2f5735fff7..3cb31927fa 100644 --- a/tools/sdk/ld/eagle.app.v6.common.ld.h +++ b/tools/sdk/ld/eagle.app.v6.common.ld.h @@ -95,6 +95,8 @@ SECTIONS /* IRAM is split into .text and .text1 to allow for moving specific */ /* functions into IRAM that would be matched by the irom0.text matcher */ + // Merged Conflict To Resolve + // iram layout inclding magic marker .text : ALIGN(4) { _stext = .; From e97e1e77520bd12caf172d2c77050f5b2907f8d1 Mon Sep 17 00:00:00 2001 From: Julian Davison Date: Fri, 20 Sep 2019 13:23:33 +1200 Subject: [PATCH 02/17] Basic merge and update of `boards.txt.py`, untested!! --- cores/esp8266/Esp.cpp | 4 ---- cores/esp8266/Updater.cpp | 4 ---- tools/boards.txt.py | 18 +++++++++++++++--- tools/sdk/ld/eagle.app.v6.common.ld.h | 4 ++-- 4 files changed, 17 insertions(+), 13 deletions(-) diff --git a/cores/esp8266/Esp.cpp b/cores/esp8266/Esp.cpp index eee22e5421..341ad430e5 100644 --- a/cores/esp8266/Esp.cpp +++ b/cores/esp8266/Esp.cpp @@ -519,18 +519,14 @@ uint32_t EspClass::getSketchSize() { return result; } -extern "C" uint32_t _FS_start; extern "C" uint32_t _SKETCH_AREA_end; -// Merged Conflict To Resolve uint32_t EspClass::getFreeSketchSpace() { uint32_t usedSize = getSketchSize(); // round one sector up uint32_t freeSpaceStart = (usedSize + FLASH_SECTOR_SIZE - 1) & (~(FLASH_SECTOR_SIZE - 1)); - uint32_t freeSpaceEnd = (uint32_t)&_FS_start - 0x40200000; uint32_t freeSpaceEnd = (uint32_t)&_SKETCH_AREA_end - 0x40200000; - // Merged Conflict To Resolve #ifdef DEBUG_SERIAL diff --git a/cores/esp8266/Updater.cpp b/cores/esp8266/Updater.cpp index 34a5dc9868..be53f41887 100644 --- a/cores/esp8266/Updater.cpp +++ b/cores/esp8266/Updater.cpp @@ -24,8 +24,6 @@ extern "C" { extern "C" uint32_t _FS_start; extern "C" uint32_t _SKETCH_AREA_end; -extern "C" uint32_t _SPIFFS_start; -// Merged Conflict To Resolve UpdaterClass::UpdaterClass() @@ -114,9 +112,7 @@ bool UpdaterClass::begin(size_t size, int command, int ledPin, uint8_t ledOn) { //size of current sketch rounded to a sector size_t currentSketchSize = (ESP.getSketchSize() + FLASH_SECTOR_SIZE - 1) & (~(FLASH_SECTOR_SIZE - 1)); //address of the end of the space available for sketch and update - uintptr_t updateEndAddress = (uintptr_t)&_FS_start - 0x40200000; uint32_t updateEndAddress = (uint32_t)&_SKETCH_AREA_end - 0x40200000; - // Merged Conflict To Resolve //size of the update rounded to a sector size_t roundedSize = (size + FLASH_SECTOR_SIZE - 1) & (~(FLASH_SECTOR_SIZE - 1)); diff --git a/tools/boards.txt.py b/tools/boards.txt.py index 3d8c947b29..43a2f2df19 100755 --- a/tools/boards.txt.py +++ b/tools/boards.txt.py @@ -1180,10 +1180,12 @@ def flash_map (flashsize_kb, fs_kb = 0): eeprom_size_kb = 4 rfcal_size_kb = 4 sdkwifi_size_kb = 12 - fs_end = (flashsize_kb - sdkwifi_size_kb - rfcal_size_kb - eeprom_size_kb) * 1024 + ota_commands = 4 + fs_end = (flashsize_kb - sdkwifi_size_kb - rfcal_size_kb - eeprom_size_kb - ota_commands) * 1024 rfcal_addr = (flashsize_kb - sdkwifi_size_kb - rfcal_size_kb) * 1024 + ota_commands_addr = fs_end if flashsize_kb <= 1024: - max_upload_size = (flashsize_kb - (fs_kb + eeprom_size_kb + rfcal_size_kb + sdkwifi_size_kb)) * 1024 - reserved + max_upload_size = (flashsize_kb - (fs_kb + eeprom_size_kb + rfcal_size_kb + sdkwifi_size_kb + ota_commands) * 1024 - reserved fs_start = fs_end - fs_kb * 1024 else: max_upload_size = 1024 * 1024 - reserved @@ -1260,13 +1262,23 @@ def flash_map (flashsize_kb, fs_kb = 0): print(" irom0_0_seg : org = 0x40201010, len = 0x%x" % max_upload_size) print("}") print("") - print("PROVIDE ( _FS_start = 0x%08X );" % (0x40200000 + fs_start)) + # print("PROVIDE ( _FS_start = 0x%08X );" % (0x40200000 + fs_start)) + # print("PROVIDE ( _FS_end = 0x%08X );" % (0x40200000 + fs_end)) + # print("PROVIDE ( _FS_page = 0x%X );" % page) + # print("PROVIDE ( _FS_block = 0x%X );" % fs_blocksize) + + print("PROVIDE ( _FS_start = 0x%08X );" % (0x40200000 + fs_start) print("PROVIDE ( _FS_end = 0x%08X );" % (0x40200000 + fs_end)) print("PROVIDE ( _FS_page = 0x%X );" % page) print("PROVIDE ( _FS_block = 0x%X );" % fs_blocksize) + print("PROVIDE ( _BOOTLOADER_DATA = 0x%08X );" % ota_commands_addr) + print("PROVIDE ( _SKETCH_AREA_end = _FS_start );" % + print("") print('INCLUDE "local.eagle.app.v6.common.ld"') + + if ldgen: sys.stdout.close() sys.stdout = realstdout diff --git a/tools/sdk/ld/eagle.app.v6.common.ld.h b/tools/sdk/ld/eagle.app.v6.common.ld.h index 3cb31927fa..a054323824 100644 --- a/tools/sdk/ld/eagle.app.v6.common.ld.h +++ b/tools/sdk/ld/eagle.app.v6.common.ld.h @@ -95,8 +95,6 @@ SECTIONS /* IRAM is split into .text and .text1 to allow for moving specific */ /* functions into IRAM that would be matched by the irom0.text matcher */ - // Merged Conflict To Resolve - // iram layout inclding magic marker .text : ALIGN(4) { _stext = .; @@ -141,6 +139,8 @@ SECTIONS { _irom0_text_start = ABSOLUTE(.); *(.ver_number) + LONG(0x31305241) + LONG(_BOOTLOADER_DATA) *.c.o(.literal*, .text*) *.cpp.o(EXCLUDE_FILE (umm_malloc.cpp.o) .literal*, EXCLUDE_FILE (umm_malloc.cpp.o) .text*) *.cc.o(.literal*, .text*) From 9d598f2005c0a1bd129132c3338ca2085d52d20a Mon Sep 17 00:00:00 2001 From: Julian Davison Date: Fri, 20 Sep 2019 15:32:07 +1200 Subject: [PATCH 03/17] Missed some brackets and forgot to finish a line! --- tools/boards.txt.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/tools/boards.txt.py b/tools/boards.txt.py index 43a2f2df19..87e4c0385c 100755 --- a/tools/boards.txt.py +++ b/tools/boards.txt.py @@ -1185,7 +1185,7 @@ def flash_map (flashsize_kb, fs_kb = 0): rfcal_addr = (flashsize_kb - sdkwifi_size_kb - rfcal_size_kb) * 1024 ota_commands_addr = fs_end if flashsize_kb <= 1024: - max_upload_size = (flashsize_kb - (fs_kb + eeprom_size_kb + rfcal_size_kb + sdkwifi_size_kb + ota_commands) * 1024 - reserved + max_upload_size = (flashsize_kb - (fs_kb + eeprom_size_kb + rfcal_size_kb + sdkwifi_size_kb + ota_commands)) * 1024 - reserved fs_start = fs_end - fs_kb * 1024 else: max_upload_size = 1024 * 1024 - reserved @@ -1267,13 +1267,12 @@ def flash_map (flashsize_kb, fs_kb = 0): # print("PROVIDE ( _FS_page = 0x%X );" % page) # print("PROVIDE ( _FS_block = 0x%X );" % fs_blocksize) - print("PROVIDE ( _FS_start = 0x%08X );" % (0x40200000 + fs_start) + print("PROVIDE ( _FS_start = 0x%08X );" % (0x40200000 + fs_start)) print("PROVIDE ( _FS_end = 0x%08X );" % (0x40200000 + fs_end)) print("PROVIDE ( _FS_page = 0x%X );" % page) print("PROVIDE ( _FS_block = 0x%X );" % fs_blocksize) print("PROVIDE ( _BOOTLOADER_DATA = 0x%08X );" % ota_commands_addr) - print("PROVIDE ( _SKETCH_AREA_end = _FS_start );" % - + print("PROVIDE ( _SKETCH_AREA_end = _FS_start );") print("") print('INCLUDE "local.eagle.app.v6.common.ld"') From 9733d4284f0454bec9f682409b77da767e005752 Mon Sep 17 00:00:00 2001 From: Julian Davison Date: Fri, 20 Sep 2019 16:01:47 +1200 Subject: [PATCH 04/17] Tweak values and move OTA commands to the end of sketch space (which should mean nothing else moves) --- tools/boards.txt.py | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/tools/boards.txt.py b/tools/boards.txt.py index 87e4c0385c..26a4d79818 100755 --- a/tools/boards.txt.py +++ b/tools/boards.txt.py @@ -1180,12 +1180,11 @@ def flash_map (flashsize_kb, fs_kb = 0): eeprom_size_kb = 4 rfcal_size_kb = 4 sdkwifi_size_kb = 12 - ota_commands = 4 - fs_end = (flashsize_kb - sdkwifi_size_kb - rfcal_size_kb - eeprom_size_kb - ota_commands) * 1024 + ota_commands_size_kb = 8 + fs_end = (flashsize_kb - sdkwifi_size_kb - rfcal_size_kb - eeprom_size_kb) * 1024 rfcal_addr = (flashsize_kb - sdkwifi_size_kb - rfcal_size_kb) * 1024 - ota_commands_addr = fs_end if flashsize_kb <= 1024: - max_upload_size = (flashsize_kb - (fs_kb + eeprom_size_kb + rfcal_size_kb + sdkwifi_size_kb + ota_commands)) * 1024 - reserved + max_upload_size = (flashsize_kb - (fs_kb + eeprom_size_kb + rfcal_size_kb + sdkwifi_size_kb + ota_commands_size_kb)) * 1024 - reserved fs_start = fs_end - fs_kb * 1024 else: max_upload_size = 1024 * 1024 - reserved @@ -1198,8 +1197,9 @@ def flash_map (flashsize_kb, fs_kb = 0): # Adjust SPIFFS_end to be a multiple of the block size fs_end = fs_blocksize * (int)((fs_end - fs_start)/fs_blocksize) + fs_start; + ota_commands_addr = fs_start - (ota_commands_size_kb * 1024) - max_ota_size = min(max_upload_size, fs_start / 2) # =(max_upload_size+empty_size)/2 + max_ota_size = min(max_upload_size, ota_commands_addr / 2) # =(max_upload_size+empty_size)/2 strsize = str(int(flashsize_kb / 1024)) + 'M' if (flashsize_kb >= 1024) else str(flashsize_kb) + 'K' strfs = str(int(fs_kb / 1024)) + 'M' if (fs_kb >= 1024) else str(fs_kb) + 'K' strfs_strip = str(int(fs_kb / 1024)) + 'M' if (fs_kb >= 1024) else str(fs_kb) if (fs_kb > 0) else '' @@ -1246,13 +1246,14 @@ def flash_map (flashsize_kb, fs_kb = 0): print("/* Flash Split for %s chips */" % strsize) print("/* sketch @0x%X (~%dKB) (%dB) */" % (spi, (max_upload_size / 1024), max_upload_size)) - empty_size = fs_start - max_upload_size + empty_size = ota_commands_addr - max_upload_size if empty_size > 0: - print("/* empty @0x%X (~%dKB) (%dB) */" % (spi + max_upload_size, empty_size / 1024, empty_size)) - print("/* spiffs @0x%X (~%dKB) (%dB) */" % (spi + fs_start, ((fs_end - fs_start) / 1024), fs_end - fs_start)) - print("/* eeprom @0x%X (%dKB) */" % (spi + rfcal_addr - eeprom_size_kb * 1024, eeprom_size_kb)) - print("/* rfcal @0x%X (%dKB) */" % (spi + rfcal_addr, rfcal_size_kb)) - print("/* wifi @0x%X (%dKB) */" % (spi + rfcal_addr + rfcal_size_kb * 1024, sdkwifi_size_kb)) + print("/* empty @0x%X (~%dKB) (%dB) */" % (spi + max_upload_size, empty_size / 1024, empty_size)) + print("/* otacmds @0x%X (%dKB) */" % (spi + ota_commands_addr, ota_commands_size_kb)) + print("/* spiffs @0x%X (~%dKB) (%dB) */" % (spi + fs_start, ((fs_end - fs_start) / 1024), fs_end - fs_start)) + print("/* eeprom @0x%X (%dKB) */" % (spi + rfcal_addr - eeprom_size_kb * 1024, eeprom_size_kb)) + print("/* rfcal @0x%X (%dKB) */" % (spi + rfcal_addr, rfcal_size_kb)) + print("/* wifi @0x%X (%dKB) */" % (spi + rfcal_addr + rfcal_size_kb * 1024, sdkwifi_size_kb)) print("") print("MEMORY") print("{") From c850515299841ccfaa03d65b7aba108d8685d8c1 Mon Sep 17 00:00:00 2001 From: Julian Davison Date: Fri, 20 Sep 2019 16:02:27 +1200 Subject: [PATCH 05/17] Result of running `python3 tools/boards.txt.py --allgen` --- boards.txt | 346 ++++++++---------- .../package_esp8266com_index.template.json | 2 +- tools/sdk/ld/eagle.flash.16m14m.ld | 13 +- tools/sdk/ld/eagle.flash.16m15m.ld | 12 +- tools/sdk/ld/eagle.flash.1m.ld | 17 +- tools/sdk/ld/eagle.flash.1m128.ld | 17 +- tools/sdk/ld/eagle.flash.1m144.ld | 17 +- tools/sdk/ld/eagle.flash.1m160.ld | 17 +- tools/sdk/ld/eagle.flash.1m192.ld | 17 +- tools/sdk/ld/eagle.flash.1m256.ld | 17 +- tools/sdk/ld/eagle.flash.1m512.ld | 17 +- tools/sdk/ld/eagle.flash.1m64.ld | 17 +- tools/sdk/ld/eagle.flash.2m.ld | 13 +- tools/sdk/ld/eagle.flash.2m128.ld | 13 +- tools/sdk/ld/eagle.flash.2m1m.ld | 12 +- tools/sdk/ld/eagle.flash.2m256.ld | 13 +- tools/sdk/ld/eagle.flash.2m512.ld | 13 +- tools/sdk/ld/eagle.flash.4m.ld | 13 +- tools/sdk/ld/eagle.flash.4m1m.ld | 13 +- tools/sdk/ld/eagle.flash.4m2m.ld | 13 +- tools/sdk/ld/eagle.flash.4m3m.ld | 12 +- tools/sdk/ld/eagle.flash.512k.ld | 17 +- tools/sdk/ld/eagle.flash.512k128.ld | 17 +- tools/sdk/ld/eagle.flash.512k32.ld | 17 +- tools/sdk/ld/eagle.flash.512k64.ld | 17 +- tools/sdk/ld/eagle.flash.8m6m.ld | 13 +- tools/sdk/ld/eagle.flash.8m7m.ld | 12 +- 27 files changed, 372 insertions(+), 345 deletions(-) diff --git a/boards.txt b/boards.txt index 1deabb49ab..0840fe613b 100644 --- a/boards.txt +++ b/boards.txt @@ -88,84 +88,84 @@ generic.menu.FlashMode.qout.build.flash_flags=-DFLASHMODE_QOUT generic.menu.FlashMode.qio=QIO (fast) generic.menu.FlashMode.qio.build.flash_mode=qio generic.menu.FlashMode.qio.build.flash_flags=-DFLASHMODE_QIO -generic.menu.eesz.1M64=1MB (FS:64KB OTA:~470KB) +generic.menu.eesz.1M64=1MB (FS:64KB OTA:~466KB) generic.menu.eesz.1M64.build.flash_size=1M generic.menu.eesz.1M64.build.flash_size_bytes=0x100000 generic.menu.eesz.1M64.build.flash_ld=eagle.flash.1m64.ld generic.menu.eesz.1M64.build.spiffs_pagesize=256 -generic.menu.eesz.1M64.upload.maximum_size=958448 +generic.menu.eesz.1M64.upload.maximum_size=950256 generic.menu.eesz.1M64.build.rfcal_addr=0xFC000 generic.menu.eesz.1M64.build.spiffs_start=0xEB000 generic.menu.eesz.1M64.build.spiffs_end=0xFB000 generic.menu.eesz.1M64.build.spiffs_blocksize=4096 -generic.menu.eesz.1M128=1MB (FS:128KB OTA:~438KB) +generic.menu.eesz.1M128=1MB (FS:128KB OTA:~434KB) generic.menu.eesz.1M128.build.flash_size=1M generic.menu.eesz.1M128.build.flash_size_bytes=0x100000 generic.menu.eesz.1M128.build.flash_ld=eagle.flash.1m128.ld generic.menu.eesz.1M128.build.spiffs_pagesize=256 -generic.menu.eesz.1M128.upload.maximum_size=892912 +generic.menu.eesz.1M128.upload.maximum_size=884720 generic.menu.eesz.1M128.build.rfcal_addr=0xFC000 generic.menu.eesz.1M128.build.spiffs_start=0xDB000 generic.menu.eesz.1M128.build.spiffs_end=0xFB000 generic.menu.eesz.1M128.build.spiffs_blocksize=4096 -generic.menu.eesz.1M144=1MB (FS:144KB OTA:~430KB) +generic.menu.eesz.1M144=1MB (FS:144KB OTA:~426KB) generic.menu.eesz.1M144.build.flash_size=1M generic.menu.eesz.1M144.build.flash_size_bytes=0x100000 generic.menu.eesz.1M144.build.flash_ld=eagle.flash.1m144.ld generic.menu.eesz.1M144.build.spiffs_pagesize=256 -generic.menu.eesz.1M144.upload.maximum_size=876528 +generic.menu.eesz.1M144.upload.maximum_size=868336 generic.menu.eesz.1M144.build.rfcal_addr=0xFC000 generic.menu.eesz.1M144.build.spiffs_start=0xD7000 generic.menu.eesz.1M144.build.spiffs_end=0xFB000 generic.menu.eesz.1M144.build.spiffs_blocksize=4096 -generic.menu.eesz.1M160=1MB (FS:160KB OTA:~422KB) +generic.menu.eesz.1M160=1MB (FS:160KB OTA:~418KB) generic.menu.eesz.1M160.build.flash_size=1M generic.menu.eesz.1M160.build.flash_size_bytes=0x100000 generic.menu.eesz.1M160.build.flash_ld=eagle.flash.1m160.ld generic.menu.eesz.1M160.build.spiffs_pagesize=256 -generic.menu.eesz.1M160.upload.maximum_size=860144 +generic.menu.eesz.1M160.upload.maximum_size=851952 generic.menu.eesz.1M160.build.rfcal_addr=0xFC000 generic.menu.eesz.1M160.build.spiffs_start=0xD3000 generic.menu.eesz.1M160.build.spiffs_end=0xFB000 generic.menu.eesz.1M160.build.spiffs_blocksize=4096 -generic.menu.eesz.1M192=1MB (FS:192KB OTA:~406KB) +generic.menu.eesz.1M192=1MB (FS:192KB OTA:~402KB) generic.menu.eesz.1M192.build.flash_size=1M generic.menu.eesz.1M192.build.flash_size_bytes=0x100000 generic.menu.eesz.1M192.build.flash_ld=eagle.flash.1m192.ld generic.menu.eesz.1M192.build.spiffs_pagesize=256 -generic.menu.eesz.1M192.upload.maximum_size=827376 +generic.menu.eesz.1M192.upload.maximum_size=819184 generic.menu.eesz.1M192.build.rfcal_addr=0xFC000 generic.menu.eesz.1M192.build.spiffs_start=0xCB000 generic.menu.eesz.1M192.build.spiffs_end=0xFB000 generic.menu.eesz.1M192.build.spiffs_blocksize=4096 -generic.menu.eesz.1M256=1MB (FS:256KB OTA:~374KB) +generic.menu.eesz.1M256=1MB (FS:256KB OTA:~370KB) generic.menu.eesz.1M256.build.flash_size=1M generic.menu.eesz.1M256.build.flash_size_bytes=0x100000 generic.menu.eesz.1M256.build.flash_ld=eagle.flash.1m256.ld generic.menu.eesz.1M256.build.spiffs_pagesize=256 -generic.menu.eesz.1M256.upload.maximum_size=761840 +generic.menu.eesz.1M256.upload.maximum_size=753648 generic.menu.eesz.1M256.build.rfcal_addr=0xFC000 generic.menu.eesz.1M256.build.spiffs_start=0xBB000 generic.menu.eesz.1M256.build.spiffs_end=0xFB000 generic.menu.eesz.1M256.build.spiffs_blocksize=4096 -generic.menu.eesz.1M512=1MB (FS:512KB OTA:~246KB) +generic.menu.eesz.1M512=1MB (FS:512KB OTA:~242KB) generic.menu.eesz.1M512.build.flash_size=1M generic.menu.eesz.1M512.build.flash_size_bytes=0x100000 generic.menu.eesz.1M512.build.flash_ld=eagle.flash.1m512.ld generic.menu.eesz.1M512.build.spiffs_pagesize=256 -generic.menu.eesz.1M512.upload.maximum_size=499696 +generic.menu.eesz.1M512.upload.maximum_size=491504 generic.menu.eesz.1M512.build.rfcal_addr=0xFC000 generic.menu.eesz.1M512.build.spiffs_start=0x7B000 generic.menu.eesz.1M512.build.spiffs_end=0xFB000 generic.menu.eesz.1M512.build.spiffs_blocksize=8192 -generic.menu.eesz.1M=1MB (FS:none OTA:~502KB) +generic.menu.eesz.1M=1MB (FS:none OTA:~498KB) generic.menu.eesz.1M.build.flash_size=1M generic.menu.eesz.1M.build.flash_size_bytes=0x100000 generic.menu.eesz.1M.build.flash_ld=eagle.flash.1m.ld generic.menu.eesz.1M.build.spiffs_pagesize=256 -generic.menu.eesz.1M.upload.maximum_size=1023984 +generic.menu.eesz.1M.upload.maximum_size=1015792 generic.menu.eesz.1M.build.rfcal_addr=0xFC000 -generic.menu.eesz.2M64=2MB (FS:64KB OTA:~992KB) +generic.menu.eesz.2M64=2MB (FS:64KB OTA:~988KB) generic.menu.eesz.2M64.build.flash_size=2M generic.menu.eesz.2M64.build.flash_size_bytes=0x200000 generic.menu.eesz.2M64.build.flash_ld=eagle.flash.2m64.ld @@ -175,7 +175,7 @@ generic.menu.eesz.2M64.build.rfcal_addr=0x1FC000 generic.menu.eesz.2M64.build.spiffs_start=0x1F0000 generic.menu.eesz.2M64.build.spiffs_end=0x1FB000 generic.menu.eesz.2M64.build.spiffs_blocksize=4096 -generic.menu.eesz.2M128=2MB (FS:128KB OTA:~960KB) +generic.menu.eesz.2M128=2MB (FS:128KB OTA:~956KB) generic.menu.eesz.2M128.build.flash_size=2M generic.menu.eesz.2M128.build.flash_size_bytes=0x200000 generic.menu.eesz.2M128.build.flash_ld=eagle.flash.2m128.ld @@ -185,7 +185,7 @@ generic.menu.eesz.2M128.build.rfcal_addr=0x1FC000 generic.menu.eesz.2M128.build.spiffs_start=0x1E0000 generic.menu.eesz.2M128.build.spiffs_end=0x1FB000 generic.menu.eesz.2M128.build.spiffs_blocksize=4096 -generic.menu.eesz.2M256=2MB (FS:256KB OTA:~896KB) +generic.menu.eesz.2M256=2MB (FS:256KB OTA:~892KB) generic.menu.eesz.2M256.build.flash_size=2M generic.menu.eesz.2M256.build.flash_size_bytes=0x200000 generic.menu.eesz.2M256.build.flash_ld=eagle.flash.2m256.ld @@ -195,7 +195,7 @@ generic.menu.eesz.2M256.build.rfcal_addr=0x1FC000 generic.menu.eesz.2M256.build.spiffs_start=0x1C0000 generic.menu.eesz.2M256.build.spiffs_end=0x1FB000 generic.menu.eesz.2M256.build.spiffs_blocksize=4096 -generic.menu.eesz.2M512=2MB (FS:512KB OTA:~768KB) +generic.menu.eesz.2M512=2MB (FS:512KB OTA:~764KB) generic.menu.eesz.2M512.build.flash_size=2M generic.menu.eesz.2M512.build.flash_size_bytes=0x200000 generic.menu.eesz.2M512.build.flash_ld=eagle.flash.2m512.ld @@ -205,7 +205,7 @@ generic.menu.eesz.2M512.build.rfcal_addr=0x1FC000 generic.menu.eesz.2M512.build.spiffs_start=0x180000 generic.menu.eesz.2M512.build.spiffs_end=0x1FA000 generic.menu.eesz.2M512.build.spiffs_blocksize=8192 -generic.menu.eesz.2M1M=2MB (FS:1MB OTA:~512KB) +generic.menu.eesz.2M1M=2MB (FS:1MB OTA:~508KB) generic.menu.eesz.2M1M.build.flash_size=2M generic.menu.eesz.2M1M.build.flash_size_bytes=0x200000 generic.menu.eesz.2M1M.build.flash_ld=eagle.flash.2m1m.ld @@ -232,7 +232,7 @@ generic.menu.eesz.4M2M.build.rfcal_addr=0x3FC000 generic.menu.eesz.4M2M.build.spiffs_start=0x200000 generic.menu.eesz.4M2M.build.spiffs_end=0x3FA000 generic.menu.eesz.4M2M.build.spiffs_blocksize=8192 -generic.menu.eesz.4M3M=4MB (FS:3MB OTA:~512KB) +generic.menu.eesz.4M3M=4MB (FS:3MB OTA:~508KB) generic.menu.eesz.4M3M.build.flash_size=4M generic.menu.eesz.4M3M.build.flash_size_bytes=0x400000 generic.menu.eesz.4M3M.build.flash_ld=eagle.flash.4m3m.ld @@ -269,7 +269,7 @@ generic.menu.eesz.8M6M.build.rfcal_addr=0x7FC000 generic.menu.eesz.8M6M.build.spiffs_start=0x200000 generic.menu.eesz.8M6M.build.spiffs_end=0x7FA000 generic.menu.eesz.8M6M.build.spiffs_blocksize=8192 -generic.menu.eesz.8M7M=8MB (FS:7MB OTA:~512KB) +generic.menu.eesz.8M7M=8MB (FS:7MB OTA:~508KB) generic.menu.eesz.8M7M.build.flash_size=8M generic.menu.eesz.8M7M.build.flash_size_bytes=0x800000 generic.menu.eesz.8M7M.build.flash_ld=eagle.flash.8m7m.ld @@ -289,7 +289,7 @@ generic.menu.eesz.16M14M.build.rfcal_addr=0xFFC000 generic.menu.eesz.16M14M.build.spiffs_start=0x200000 generic.menu.eesz.16M14M.build.spiffs_end=0xFFA000 generic.menu.eesz.16M14M.build.spiffs_blocksize=8192 -generic.menu.eesz.16M15M=16MB (FS:15MB OTA:~512KB) +generic.menu.eesz.16M15M=16MB (FS:15MB OTA:~508KB) generic.menu.eesz.16M15M.build.flash_size=16M generic.menu.eesz.16M15M.build.flash_size_bytes=0x1000000 generic.menu.eesz.16M15M.build.flash_ld=eagle.flash.16m15m.ld @@ -299,42 +299,42 @@ generic.menu.eesz.16M15M.build.rfcal_addr=0xFFC000 generic.menu.eesz.16M15M.build.spiffs_start=0x100000 generic.menu.eesz.16M15M.build.spiffs_end=0xFFA000 generic.menu.eesz.16M15M.build.spiffs_blocksize=8192 -generic.menu.eesz.512K32=512KB (FS:32KB OTA:~230KB) +generic.menu.eesz.512K32=512KB (FS:32KB OTA:~226KB) generic.menu.eesz.512K32.build.flash_size=512K generic.menu.eesz.512K32.build.flash_size_bytes=0x80000 generic.menu.eesz.512K32.build.flash_ld=eagle.flash.512k32.ld generic.menu.eesz.512K32.build.spiffs_pagesize=256 -generic.menu.eesz.512K32.upload.maximum_size=466928 +generic.menu.eesz.512K32.upload.maximum_size=458736 generic.menu.eesz.512K32.build.rfcal_addr=0x7C000 generic.menu.eesz.512K32.build.spiffs_start=0x73000 generic.menu.eesz.512K32.build.spiffs_end=0x7B000 generic.menu.eesz.512K32.build.spiffs_blocksize=4096 -generic.menu.eesz.512K64=512KB (FS:64KB OTA:~214KB) +generic.menu.eesz.512K64=512KB (FS:64KB OTA:~210KB) generic.menu.eesz.512K64.build.flash_size=512K generic.menu.eesz.512K64.build.flash_size_bytes=0x80000 generic.menu.eesz.512K64.build.flash_ld=eagle.flash.512k64.ld generic.menu.eesz.512K64.build.spiffs_pagesize=256 -generic.menu.eesz.512K64.upload.maximum_size=434160 +generic.menu.eesz.512K64.upload.maximum_size=425968 generic.menu.eesz.512K64.build.rfcal_addr=0x7C000 generic.menu.eesz.512K64.build.spiffs_start=0x6B000 generic.menu.eesz.512K64.build.spiffs_end=0x7B000 generic.menu.eesz.512K64.build.spiffs_blocksize=4096 -generic.menu.eesz.512K128=512KB (FS:128KB OTA:~182KB) +generic.menu.eesz.512K128=512KB (FS:128KB OTA:~178KB) generic.menu.eesz.512K128.build.flash_size=512K generic.menu.eesz.512K128.build.flash_size_bytes=0x80000 generic.menu.eesz.512K128.build.flash_ld=eagle.flash.512k128.ld generic.menu.eesz.512K128.build.spiffs_pagesize=256 -generic.menu.eesz.512K128.upload.maximum_size=368624 +generic.menu.eesz.512K128.upload.maximum_size=360432 generic.menu.eesz.512K128.build.rfcal_addr=0x7C000 generic.menu.eesz.512K128.build.spiffs_start=0x5B000 generic.menu.eesz.512K128.build.spiffs_end=0x7B000 generic.menu.eesz.512K128.build.spiffs_blocksize=4096 -generic.menu.eesz.512K=512KB (FS:none OTA:~246KB) +generic.menu.eesz.512K=512KB (FS:none OTA:~242KB) generic.menu.eesz.512K.build.flash_size=512K generic.menu.eesz.512K.build.flash_size_bytes=0x80000 generic.menu.eesz.512K.build.flash_ld=eagle.flash.512k.ld generic.menu.eesz.512K.build.spiffs_pagesize=256 -generic.menu.eesz.512K.upload.maximum_size=499696 +generic.menu.eesz.512K.upload.maximum_size=491504 generic.menu.eesz.512K.build.rfcal_addr=0x7C000 generic.menu.led.2=2 generic.menu.led.2.build.led=-DLED_BUILTIN=2 @@ -542,82 +542,82 @@ esp8285.menu.CrystalFreq.40.build.extra_flags=-DF_CRYSTAL=40000000 -DESP8266 esp8285.build.flash_mode=dout esp8285.build.flash_flags=-DFLASHMODE_DOUT esp8285.build.flash_freq=40 -esp8285.menu.eesz.1M64=1MB (FS:64KB OTA:~470KB) +esp8285.menu.eesz.1M64=1MB (FS:64KB OTA:~466KB) esp8285.menu.eesz.1M64.build.flash_size=1M esp8285.menu.eesz.1M64.build.flash_size_bytes=0x100000 esp8285.menu.eesz.1M64.build.flash_ld=eagle.flash.1m64.ld esp8285.menu.eesz.1M64.build.spiffs_pagesize=256 -esp8285.menu.eesz.1M64.upload.maximum_size=958448 +esp8285.menu.eesz.1M64.upload.maximum_size=950256 esp8285.menu.eesz.1M64.build.rfcal_addr=0xFC000 esp8285.menu.eesz.1M64.build.spiffs_start=0xEB000 esp8285.menu.eesz.1M64.build.spiffs_end=0xFB000 esp8285.menu.eesz.1M64.build.spiffs_blocksize=4096 -esp8285.menu.eesz.1M128=1MB (FS:128KB OTA:~438KB) +esp8285.menu.eesz.1M128=1MB (FS:128KB OTA:~434KB) esp8285.menu.eesz.1M128.build.flash_size=1M esp8285.menu.eesz.1M128.build.flash_size_bytes=0x100000 esp8285.menu.eesz.1M128.build.flash_ld=eagle.flash.1m128.ld esp8285.menu.eesz.1M128.build.spiffs_pagesize=256 -esp8285.menu.eesz.1M128.upload.maximum_size=892912 +esp8285.menu.eesz.1M128.upload.maximum_size=884720 esp8285.menu.eesz.1M128.build.rfcal_addr=0xFC000 esp8285.menu.eesz.1M128.build.spiffs_start=0xDB000 esp8285.menu.eesz.1M128.build.spiffs_end=0xFB000 esp8285.menu.eesz.1M128.build.spiffs_blocksize=4096 -esp8285.menu.eesz.1M144=1MB (FS:144KB OTA:~430KB) +esp8285.menu.eesz.1M144=1MB (FS:144KB OTA:~426KB) esp8285.menu.eesz.1M144.build.flash_size=1M esp8285.menu.eesz.1M144.build.flash_size_bytes=0x100000 esp8285.menu.eesz.1M144.build.flash_ld=eagle.flash.1m144.ld esp8285.menu.eesz.1M144.build.spiffs_pagesize=256 -esp8285.menu.eesz.1M144.upload.maximum_size=876528 +esp8285.menu.eesz.1M144.upload.maximum_size=868336 esp8285.menu.eesz.1M144.build.rfcal_addr=0xFC000 esp8285.menu.eesz.1M144.build.spiffs_start=0xD7000 esp8285.menu.eesz.1M144.build.spiffs_end=0xFB000 esp8285.menu.eesz.1M144.build.spiffs_blocksize=4096 -esp8285.menu.eesz.1M160=1MB (FS:160KB OTA:~422KB) +esp8285.menu.eesz.1M160=1MB (FS:160KB OTA:~418KB) esp8285.menu.eesz.1M160.build.flash_size=1M esp8285.menu.eesz.1M160.build.flash_size_bytes=0x100000 esp8285.menu.eesz.1M160.build.flash_ld=eagle.flash.1m160.ld esp8285.menu.eesz.1M160.build.spiffs_pagesize=256 -esp8285.menu.eesz.1M160.upload.maximum_size=860144 +esp8285.menu.eesz.1M160.upload.maximum_size=851952 esp8285.menu.eesz.1M160.build.rfcal_addr=0xFC000 esp8285.menu.eesz.1M160.build.spiffs_start=0xD3000 esp8285.menu.eesz.1M160.build.spiffs_end=0xFB000 esp8285.menu.eesz.1M160.build.spiffs_blocksize=4096 -esp8285.menu.eesz.1M192=1MB (FS:192KB OTA:~406KB) +esp8285.menu.eesz.1M192=1MB (FS:192KB OTA:~402KB) esp8285.menu.eesz.1M192.build.flash_size=1M esp8285.menu.eesz.1M192.build.flash_size_bytes=0x100000 esp8285.menu.eesz.1M192.build.flash_ld=eagle.flash.1m192.ld esp8285.menu.eesz.1M192.build.spiffs_pagesize=256 -esp8285.menu.eesz.1M192.upload.maximum_size=827376 +esp8285.menu.eesz.1M192.upload.maximum_size=819184 esp8285.menu.eesz.1M192.build.rfcal_addr=0xFC000 esp8285.menu.eesz.1M192.build.spiffs_start=0xCB000 esp8285.menu.eesz.1M192.build.spiffs_end=0xFB000 esp8285.menu.eesz.1M192.build.spiffs_blocksize=4096 -esp8285.menu.eesz.1M256=1MB (FS:256KB OTA:~374KB) +esp8285.menu.eesz.1M256=1MB (FS:256KB OTA:~370KB) esp8285.menu.eesz.1M256.build.flash_size=1M esp8285.menu.eesz.1M256.build.flash_size_bytes=0x100000 esp8285.menu.eesz.1M256.build.flash_ld=eagle.flash.1m256.ld esp8285.menu.eesz.1M256.build.spiffs_pagesize=256 -esp8285.menu.eesz.1M256.upload.maximum_size=761840 +esp8285.menu.eesz.1M256.upload.maximum_size=753648 esp8285.menu.eesz.1M256.build.rfcal_addr=0xFC000 esp8285.menu.eesz.1M256.build.spiffs_start=0xBB000 esp8285.menu.eesz.1M256.build.spiffs_end=0xFB000 esp8285.menu.eesz.1M256.build.spiffs_blocksize=4096 -esp8285.menu.eesz.1M512=1MB (FS:512KB OTA:~246KB) +esp8285.menu.eesz.1M512=1MB (FS:512KB OTA:~242KB) esp8285.menu.eesz.1M512.build.flash_size=1M esp8285.menu.eesz.1M512.build.flash_size_bytes=0x100000 esp8285.menu.eesz.1M512.build.flash_ld=eagle.flash.1m512.ld esp8285.menu.eesz.1M512.build.spiffs_pagesize=256 -esp8285.menu.eesz.1M512.upload.maximum_size=499696 +esp8285.menu.eesz.1M512.upload.maximum_size=491504 esp8285.menu.eesz.1M512.build.rfcal_addr=0xFC000 esp8285.menu.eesz.1M512.build.spiffs_start=0x7B000 esp8285.menu.eesz.1M512.build.spiffs_end=0xFB000 esp8285.menu.eesz.1M512.build.spiffs_blocksize=8192 -esp8285.menu.eesz.1M=1MB (FS:none OTA:~502KB) +esp8285.menu.eesz.1M=1MB (FS:none OTA:~498KB) esp8285.menu.eesz.1M.build.flash_size=1M esp8285.menu.eesz.1M.build.flash_size_bytes=0x100000 esp8285.menu.eesz.1M.build.flash_ld=eagle.flash.1m.ld esp8285.menu.eesz.1M.build.spiffs_pagesize=256 -esp8285.menu.eesz.1M.upload.maximum_size=1023984 +esp8285.menu.eesz.1M.upload.maximum_size=1015792 esp8285.menu.eesz.1M.build.rfcal_addr=0xFC000 esp8285.menu.led.2=2 esp8285.menu.led.2.build.led=-DLED_BUILTIN=2 @@ -827,7 +827,7 @@ espduino.menu.eesz.4M2M.build.rfcal_addr=0x3FC000 espduino.menu.eesz.4M2M.build.spiffs_start=0x200000 espduino.menu.eesz.4M2M.build.spiffs_end=0x3FA000 espduino.menu.eesz.4M2M.build.spiffs_blocksize=8192 -espduino.menu.eesz.4M3M=4MB (FS:3MB OTA:~512KB) +espduino.menu.eesz.4M3M=4MB (FS:3MB OTA:~508KB) espduino.menu.eesz.4M3M.build.flash_size=4M espduino.menu.eesz.4M3M.build.flash_size_bytes=0x400000 espduino.menu.eesz.4M3M.build.flash_ld=eagle.flash.4m3m.ld @@ -1020,7 +1020,7 @@ huzzah.menu.eesz.4M2M.build.rfcal_addr=0x3FC000 huzzah.menu.eesz.4M2M.build.spiffs_start=0x200000 huzzah.menu.eesz.4M2M.build.spiffs_end=0x3FA000 huzzah.menu.eesz.4M2M.build.spiffs_blocksize=8192 -huzzah.menu.eesz.4M3M=4MB (FS:3MB OTA:~512KB) +huzzah.menu.eesz.4M3M=4MB (FS:3MB OTA:~508KB) huzzah.menu.eesz.4M3M.build.flash_size=4M huzzah.menu.eesz.4M3M.build.flash_size_bytes=0x400000 huzzah.menu.eesz.4M3M.build.flash_ld=eagle.flash.4m3m.ld @@ -1213,7 +1213,7 @@ inventone.menu.eesz.4M2M.build.rfcal_addr=0x3FC000 inventone.menu.eesz.4M2M.build.spiffs_start=0x200000 inventone.menu.eesz.4M2M.build.spiffs_end=0x3FA000 inventone.menu.eesz.4M2M.build.spiffs_blocksize=8192 -inventone.menu.eesz.4M3M=4MB (FS:3MB OTA:~512KB) +inventone.menu.eesz.4M3M=4MB (FS:3MB OTA:~508KB) inventone.menu.eesz.4M3M.build.flash_size=4M inventone.menu.eesz.4M3M.build.flash_size_bytes=0x400000 inventone.menu.eesz.4M3M.build.flash_ld=eagle.flash.4m3m.ld @@ -1409,7 +1409,7 @@ cw01.menu.eesz.4M2M.build.rfcal_addr=0x3FC000 cw01.menu.eesz.4M2M.build.spiffs_start=0x200000 cw01.menu.eesz.4M2M.build.spiffs_end=0x3FA000 cw01.menu.eesz.4M2M.build.spiffs_blocksize=8192 -cw01.menu.eesz.4M3M=4MB (FS:3MB OTA:~512KB) +cw01.menu.eesz.4M3M=4MB (FS:3MB OTA:~508KB) cw01.menu.eesz.4M3M.build.flash_size=4M cw01.menu.eesz.4M3M.build.flash_size_bytes=0x400000 cw01.menu.eesz.4M3M.build.flash_ld=eagle.flash.4m3m.ld @@ -1601,7 +1601,7 @@ espresso_lite_v1.menu.eesz.4M2M.build.rfcal_addr=0x3FC000 espresso_lite_v1.menu.eesz.4M2M.build.spiffs_start=0x200000 espresso_lite_v1.menu.eesz.4M2M.build.spiffs_end=0x3FA000 espresso_lite_v1.menu.eesz.4M2M.build.spiffs_blocksize=8192 -espresso_lite_v1.menu.eesz.4M3M=4MB (FS:3MB OTA:~512KB) +espresso_lite_v1.menu.eesz.4M3M=4MB (FS:3MB OTA:~508KB) espresso_lite_v1.menu.eesz.4M3M.build.flash_size=4M espresso_lite_v1.menu.eesz.4M3M.build.flash_size_bytes=0x400000 espresso_lite_v1.menu.eesz.4M3M.build.flash_ld=eagle.flash.4m3m.ld @@ -1797,7 +1797,7 @@ espresso_lite_v2.menu.eesz.4M2M.build.rfcal_addr=0x3FC000 espresso_lite_v2.menu.eesz.4M2M.build.spiffs_start=0x200000 espresso_lite_v2.menu.eesz.4M2M.build.spiffs_end=0x3FA000 espresso_lite_v2.menu.eesz.4M2M.build.spiffs_blocksize=8192 -espresso_lite_v2.menu.eesz.4M3M=4MB (FS:3MB OTA:~512KB) +espresso_lite_v2.menu.eesz.4M3M=4MB (FS:3MB OTA:~508KB) espresso_lite_v2.menu.eesz.4M3M.build.flash_size=4M espresso_lite_v2.menu.eesz.4M3M.build.flash_size_bytes=0x400000 espresso_lite_v2.menu.eesz.4M3M.build.flash_ld=eagle.flash.4m3m.ld @@ -1993,7 +1993,7 @@ phoenix_v1.menu.eesz.4M2M.build.rfcal_addr=0x3FC000 phoenix_v1.menu.eesz.4M2M.build.spiffs_start=0x200000 phoenix_v1.menu.eesz.4M2M.build.spiffs_end=0x3FA000 phoenix_v1.menu.eesz.4M2M.build.spiffs_blocksize=8192 -phoenix_v1.menu.eesz.4M3M=4MB (FS:3MB OTA:~512KB) +phoenix_v1.menu.eesz.4M3M=4MB (FS:3MB OTA:~508KB) phoenix_v1.menu.eesz.4M3M.build.flash_size=4M phoenix_v1.menu.eesz.4M3M.build.flash_size_bytes=0x400000 phoenix_v1.menu.eesz.4M3M.build.flash_ld=eagle.flash.4m3m.ld @@ -2189,7 +2189,7 @@ phoenix_v2.menu.eesz.4M2M.build.rfcal_addr=0x3FC000 phoenix_v2.menu.eesz.4M2M.build.spiffs_start=0x200000 phoenix_v2.menu.eesz.4M2M.build.spiffs_end=0x3FA000 phoenix_v2.menu.eesz.4M2M.build.spiffs_blocksize=8192 -phoenix_v2.menu.eesz.4M3M=4MB (FS:3MB OTA:~512KB) +phoenix_v2.menu.eesz.4M3M=4MB (FS:3MB OTA:~508KB) phoenix_v2.menu.eesz.4M3M.build.flash_size=4M phoenix_v2.menu.eesz.4M3M.build.flash_size_bytes=0x400000 phoenix_v2.menu.eesz.4M3M.build.flash_ld=eagle.flash.4m3m.ld @@ -2386,7 +2386,7 @@ nodemcu.menu.eesz.4M2M.build.rfcal_addr=0x3FC000 nodemcu.menu.eesz.4M2M.build.spiffs_start=0x200000 nodemcu.menu.eesz.4M2M.build.spiffs_end=0x3FA000 nodemcu.menu.eesz.4M2M.build.spiffs_blocksize=8192 -nodemcu.menu.eesz.4M3M=4MB (FS:3MB OTA:~512KB) +nodemcu.menu.eesz.4M3M=4MB (FS:3MB OTA:~508KB) nodemcu.menu.eesz.4M3M.build.flash_size=4M nodemcu.menu.eesz.4M3M.build.flash_size_bytes=0x400000 nodemcu.menu.eesz.4M3M.build.flash_ld=eagle.flash.4m3m.ld @@ -2579,7 +2579,7 @@ nodemcuv2.menu.eesz.4M2M.build.rfcal_addr=0x3FC000 nodemcuv2.menu.eesz.4M2M.build.spiffs_start=0x200000 nodemcuv2.menu.eesz.4M2M.build.spiffs_end=0x3FA000 nodemcuv2.menu.eesz.4M2M.build.spiffs_blocksize=8192 -nodemcuv2.menu.eesz.4M3M=4MB (FS:3MB OTA:~512KB) +nodemcuv2.menu.eesz.4M3M=4MB (FS:3MB OTA:~508KB) nodemcuv2.menu.eesz.4M3M.build.flash_size=4M nodemcuv2.menu.eesz.4M3M.build.flash_size_bytes=0x400000 nodemcuv2.menu.eesz.4M3M.build.flash_ld=eagle.flash.4m3m.ld @@ -2720,50 +2720,6 @@ nodemcuv2.menu.baud.921600.upload.speed=921600 nodemcuv2.menu.baud.3000000=3000000 nodemcuv2.menu.baud.3000000.upload.speed=3000000 - - - -nodemcuv2.menu.Debug.Disabled=Disabled -nodemcuv2.menu.Debug.Disabled.build.debug_port= -nodemcuv2.menu.Debug.Serial=Serial -nodemcuv2.menu.Debug.Serial.build.debug_port=-DDEBUG_ESP_PORT=Serial -nodemcuv2.menu.Debug.Serial1=Serial1 -nodemcuv2.menu.Debug.Serial1.build.debug_port=-DDEBUG_ESP_PORT=Serial1 - -nodemcuv2.menu.DebugLevel.None____=None -nodemcuv2.menu.DebugLevel.None____.build.debug_level= -nodemcuv2.menu.DebugLevel.Core____=Core -nodemcuv2.menu.DebugLevel.Core____.build.debug_level=-DDEBUG_ESP_CORE -nodemcuv2.menu.DebugLevel.SSL_____=Core + SSL -nodemcuv2.menu.DebugLevel.SSL_____.build.debug_level=-DDEBUG_ESP_CORE -DDEBUG_ESP_SSL -nodemcuv2.menu.DebugLevel.SSL_MEM_=Core + SSL + TLS Mem -nodemcuv2.menu.DebugLevel.SSL_MEM_.build.debug_level=-DDEBUG_ESP_CORE -DDEBUG_ESP_SSL -DDEBUG_TLS_MEM -nodemcuv2.menu.DebugLevel.WiFic___=Core + WiFi -nodemcuv2.menu.DebugLevel.WiFic___.build.debug_level=-DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI -nodemcuv2.menu.DebugLevel.WiFi____=WiFi -nodemcuv2.menu.DebugLevel.WiFi____.build.debug_level=-DDEBUG_ESP_WIFI -nodemcuv2.menu.DebugLevel.HTTPClient=HTTPClient -nodemcuv2.menu.DebugLevel.HTTPClient.build.debug_level=-DDEBUG_ESP_HTTP_CLIENT -nodemcuv2.menu.DebugLevel.HTTPClient2=HTTPClient + SSL -nodemcuv2.menu.DebugLevel.HTTPClient2.build.debug_level=-DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_SSL -nodemcuv2.menu.DebugLevel.HTTPUpdate=HTTPUpdate -nodemcuv2.menu.DebugLevel.HTTPUpdate.build.debug_level=-DDEBUG_ESP_HTTP_UPDATE -nodemcuv2.menu.DebugLevel.HTTPUpdate2=HTTPClient + HTTPUpdate -nodemcuv2.menu.DebugLevel.HTTPUpdate2.build.debug_level=-DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_HTTP_UPDATE -nodemcuv2.menu.DebugLevel.HTTPUpdate3=HTTPClient + HTTPUpdate + Updater -nodemcuv2.menu.DebugLevel.HTTPUpdate3.build.debug_level=-DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER -nodemcuv2.menu.DebugLevel.HTTPServer=HTTPServer -nodemcuv2.menu.DebugLevel.HTTPServer.build.debug_level=-DDEBUG_ESP_HTTP_SERVER -nodemcuv2.menu.DebugLevel.UPDATER=Updater -nodemcuv2.menu.DebugLevel.UPDATER.build.debug_level=-DDEBUG_ESP_UPDATER -nodemcuv2.menu.DebugLevel.OTA_____=OTA -nodemcuv2.menu.DebugLevel.OTA_____.build.debug_level=-DDEBUG_ESP_OTA -nodemcuv2.menu.DebugLevel.OTA2____=OTA + Updater -nodemcuv2.menu.DebugLevel.OTA2____.build.debug_level=-DDEBUG_ESP_OTA -DDEBUG_ESP_UPDATER -nodemcuv2.menu.DebugLevel.all_____=All -nodemcuv2.menu.DebugLevel.all_____.build.debug_level=-DDEBUG_ESP_CORE -DDEBUG_ESP_SSL -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_HTTP_SERVER -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_TLS_MEM - - ############################################################## modwifi.name=Olimex MOD-WIFI-ESP8266(-DEV) modwifi.build.board=MOD_WIFI_ESP8266 @@ -2806,7 +2762,7 @@ modwifi.upload.resetmethod=ck modwifi.build.flash_mode=qio modwifi.build.flash_flags=-DFLASHMODE_QIO modwifi.build.flash_freq=40 -modwifi.menu.eesz.2M64=2MB (FS:64KB OTA:~992KB) +modwifi.menu.eesz.2M64=2MB (FS:64KB OTA:~988KB) modwifi.menu.eesz.2M64.build.flash_size=2M modwifi.menu.eesz.2M64.build.flash_size_bytes=0x200000 modwifi.menu.eesz.2M64.build.flash_ld=eagle.flash.2m64.ld @@ -2816,7 +2772,7 @@ modwifi.menu.eesz.2M64.build.rfcal_addr=0x1FC000 modwifi.menu.eesz.2M64.build.spiffs_start=0x1F0000 modwifi.menu.eesz.2M64.build.spiffs_end=0x1FB000 modwifi.menu.eesz.2M64.build.spiffs_blocksize=4096 -modwifi.menu.eesz.2M128=2MB (FS:128KB OTA:~960KB) +modwifi.menu.eesz.2M128=2MB (FS:128KB OTA:~956KB) modwifi.menu.eesz.2M128.build.flash_size=2M modwifi.menu.eesz.2M128.build.flash_size_bytes=0x200000 modwifi.menu.eesz.2M128.build.flash_ld=eagle.flash.2m128.ld @@ -2826,7 +2782,7 @@ modwifi.menu.eesz.2M128.build.rfcal_addr=0x1FC000 modwifi.menu.eesz.2M128.build.spiffs_start=0x1E0000 modwifi.menu.eesz.2M128.build.spiffs_end=0x1FB000 modwifi.menu.eesz.2M128.build.spiffs_blocksize=4096 -modwifi.menu.eesz.2M256=2MB (FS:256KB OTA:~896KB) +modwifi.menu.eesz.2M256=2MB (FS:256KB OTA:~892KB) modwifi.menu.eesz.2M256.build.flash_size=2M modwifi.menu.eesz.2M256.build.flash_size_bytes=0x200000 modwifi.menu.eesz.2M256.build.flash_ld=eagle.flash.2m256.ld @@ -2836,7 +2792,7 @@ modwifi.menu.eesz.2M256.build.rfcal_addr=0x1FC000 modwifi.menu.eesz.2M256.build.spiffs_start=0x1C0000 modwifi.menu.eesz.2M256.build.spiffs_end=0x1FB000 modwifi.menu.eesz.2M256.build.spiffs_blocksize=4096 -modwifi.menu.eesz.2M512=2MB (FS:512KB OTA:~768KB) +modwifi.menu.eesz.2M512=2MB (FS:512KB OTA:~764KB) modwifi.menu.eesz.2M512.build.flash_size=2M modwifi.menu.eesz.2M512.build.flash_size_bytes=0x200000 modwifi.menu.eesz.2M512.build.flash_ld=eagle.flash.2m512.ld @@ -2846,7 +2802,7 @@ modwifi.menu.eesz.2M512.build.rfcal_addr=0x1FC000 modwifi.menu.eesz.2M512.build.spiffs_start=0x180000 modwifi.menu.eesz.2M512.build.spiffs_end=0x1FA000 modwifi.menu.eesz.2M512.build.spiffs_blocksize=8192 -modwifi.menu.eesz.2M1M=2MB (FS:1MB OTA:~512KB) +modwifi.menu.eesz.2M1M=2MB (FS:1MB OTA:~508KB) modwifi.menu.eesz.2M1M.build.flash_size=2M modwifi.menu.eesz.2M1M.build.flash_size_bytes=0x200000 modwifi.menu.eesz.2M1M.build.flash_ld=eagle.flash.2m1m.ld @@ -3019,42 +2975,42 @@ thing.upload.resetmethod=ck thing.build.flash_mode=qio thing.build.flash_flags=-DFLASHMODE_QIO thing.build.flash_freq=40 -thing.menu.eesz.512K32=512KB (FS:32KB OTA:~230KB) +thing.menu.eesz.512K32=512KB (FS:32KB OTA:~226KB) thing.menu.eesz.512K32.build.flash_size=512K thing.menu.eesz.512K32.build.flash_size_bytes=0x80000 thing.menu.eesz.512K32.build.flash_ld=eagle.flash.512k32.ld thing.menu.eesz.512K32.build.spiffs_pagesize=256 -thing.menu.eesz.512K32.upload.maximum_size=466928 +thing.menu.eesz.512K32.upload.maximum_size=458736 thing.menu.eesz.512K32.build.rfcal_addr=0x7C000 thing.menu.eesz.512K32.build.spiffs_start=0x73000 thing.menu.eesz.512K32.build.spiffs_end=0x7B000 thing.menu.eesz.512K32.build.spiffs_blocksize=4096 -thing.menu.eesz.512K64=512KB (FS:64KB OTA:~214KB) +thing.menu.eesz.512K64=512KB (FS:64KB OTA:~210KB) thing.menu.eesz.512K64.build.flash_size=512K thing.menu.eesz.512K64.build.flash_size_bytes=0x80000 thing.menu.eesz.512K64.build.flash_ld=eagle.flash.512k64.ld thing.menu.eesz.512K64.build.spiffs_pagesize=256 -thing.menu.eesz.512K64.upload.maximum_size=434160 +thing.menu.eesz.512K64.upload.maximum_size=425968 thing.menu.eesz.512K64.build.rfcal_addr=0x7C000 thing.menu.eesz.512K64.build.spiffs_start=0x6B000 thing.menu.eesz.512K64.build.spiffs_end=0x7B000 thing.menu.eesz.512K64.build.spiffs_blocksize=4096 -thing.menu.eesz.512K128=512KB (FS:128KB OTA:~182KB) +thing.menu.eesz.512K128=512KB (FS:128KB OTA:~178KB) thing.menu.eesz.512K128.build.flash_size=512K thing.menu.eesz.512K128.build.flash_size_bytes=0x80000 thing.menu.eesz.512K128.build.flash_ld=eagle.flash.512k128.ld thing.menu.eesz.512K128.build.spiffs_pagesize=256 -thing.menu.eesz.512K128.upload.maximum_size=368624 +thing.menu.eesz.512K128.upload.maximum_size=360432 thing.menu.eesz.512K128.build.rfcal_addr=0x7C000 thing.menu.eesz.512K128.build.spiffs_start=0x5B000 thing.menu.eesz.512K128.build.spiffs_end=0x7B000 thing.menu.eesz.512K128.build.spiffs_blocksize=4096 -thing.menu.eesz.512K=512KB (FS:none OTA:~246KB) +thing.menu.eesz.512K=512KB (FS:none OTA:~242KB) thing.menu.eesz.512K.build.flash_size=512K thing.menu.eesz.512K.build.flash_size_bytes=0x80000 thing.menu.eesz.512K.build.flash_ld=eagle.flash.512k.ld thing.menu.eesz.512K.build.spiffs_pagesize=256 -thing.menu.eesz.512K.upload.maximum_size=499696 +thing.menu.eesz.512K.upload.maximum_size=491504 thing.menu.eesz.512K.build.rfcal_addr=0x7C000 thing.menu.ip.lm2f=v2 Lower Memory thing.menu.ip.lm2f.build.lwip_include=lwip2/include @@ -3212,42 +3168,42 @@ thingdev.upload.resetmethod=nodemcu thingdev.build.flash_mode=dio thingdev.build.flash_flags=-DFLASHMODE_DIO thingdev.build.flash_freq=40 -thingdev.menu.eesz.512K32=512KB (FS:32KB OTA:~230KB) +thingdev.menu.eesz.512K32=512KB (FS:32KB OTA:~226KB) thingdev.menu.eesz.512K32.build.flash_size=512K thingdev.menu.eesz.512K32.build.flash_size_bytes=0x80000 thingdev.menu.eesz.512K32.build.flash_ld=eagle.flash.512k32.ld thingdev.menu.eesz.512K32.build.spiffs_pagesize=256 -thingdev.menu.eesz.512K32.upload.maximum_size=466928 +thingdev.menu.eesz.512K32.upload.maximum_size=458736 thingdev.menu.eesz.512K32.build.rfcal_addr=0x7C000 thingdev.menu.eesz.512K32.build.spiffs_start=0x73000 thingdev.menu.eesz.512K32.build.spiffs_end=0x7B000 thingdev.menu.eesz.512K32.build.spiffs_blocksize=4096 -thingdev.menu.eesz.512K64=512KB (FS:64KB OTA:~214KB) +thingdev.menu.eesz.512K64=512KB (FS:64KB OTA:~210KB) thingdev.menu.eesz.512K64.build.flash_size=512K thingdev.menu.eesz.512K64.build.flash_size_bytes=0x80000 thingdev.menu.eesz.512K64.build.flash_ld=eagle.flash.512k64.ld thingdev.menu.eesz.512K64.build.spiffs_pagesize=256 -thingdev.menu.eesz.512K64.upload.maximum_size=434160 +thingdev.menu.eesz.512K64.upload.maximum_size=425968 thingdev.menu.eesz.512K64.build.rfcal_addr=0x7C000 thingdev.menu.eesz.512K64.build.spiffs_start=0x6B000 thingdev.menu.eesz.512K64.build.spiffs_end=0x7B000 thingdev.menu.eesz.512K64.build.spiffs_blocksize=4096 -thingdev.menu.eesz.512K128=512KB (FS:128KB OTA:~182KB) +thingdev.menu.eesz.512K128=512KB (FS:128KB OTA:~178KB) thingdev.menu.eesz.512K128.build.flash_size=512K thingdev.menu.eesz.512K128.build.flash_size_bytes=0x80000 thingdev.menu.eesz.512K128.build.flash_ld=eagle.flash.512k128.ld thingdev.menu.eesz.512K128.build.spiffs_pagesize=256 -thingdev.menu.eesz.512K128.upload.maximum_size=368624 +thingdev.menu.eesz.512K128.upload.maximum_size=360432 thingdev.menu.eesz.512K128.build.rfcal_addr=0x7C000 thingdev.menu.eesz.512K128.build.spiffs_start=0x5B000 thingdev.menu.eesz.512K128.build.spiffs_end=0x7B000 thingdev.menu.eesz.512K128.build.spiffs_blocksize=4096 -thingdev.menu.eesz.512K=512KB (FS:none OTA:~246KB) +thingdev.menu.eesz.512K=512KB (FS:none OTA:~242KB) thingdev.menu.eesz.512K.build.flash_size=512K thingdev.menu.eesz.512K.build.flash_size_bytes=0x80000 thingdev.menu.eesz.512K.build.flash_ld=eagle.flash.512k.ld thingdev.menu.eesz.512K.build.spiffs_pagesize=256 -thingdev.menu.eesz.512K.upload.maximum_size=499696 +thingdev.menu.eesz.512K.upload.maximum_size=491504 thingdev.menu.eesz.512K.build.rfcal_addr=0x7C000 thingdev.menu.ip.lm2f=v2 Lower Memory thingdev.menu.ip.lm2f.build.lwip_include=lwip2/include @@ -3415,7 +3371,7 @@ esp210.menu.eesz.4M2M.build.rfcal_addr=0x3FC000 esp210.menu.eesz.4M2M.build.spiffs_start=0x200000 esp210.menu.eesz.4M2M.build.spiffs_end=0x3FA000 esp210.menu.eesz.4M2M.build.spiffs_blocksize=8192 -esp210.menu.eesz.4M3M=4MB (FS:3MB OTA:~512KB) +esp210.menu.eesz.4M3M=4MB (FS:3MB OTA:~508KB) esp210.menu.eesz.4M3M.build.flash_size=4M esp210.menu.eesz.4M3M.build.flash_size_bytes=0x400000 esp210.menu.eesz.4M3M.build.flash_ld=eagle.flash.4m3m.ld @@ -3608,7 +3564,7 @@ d1_mini.menu.eesz.4M2M.build.rfcal_addr=0x3FC000 d1_mini.menu.eesz.4M2M.build.spiffs_start=0x200000 d1_mini.menu.eesz.4M2M.build.spiffs_end=0x3FA000 d1_mini.menu.eesz.4M2M.build.spiffs_blocksize=8192 -d1_mini.menu.eesz.4M3M=4MB (FS:3MB OTA:~512KB) +d1_mini.menu.eesz.4M3M=4MB (FS:3MB OTA:~508KB) d1_mini.menu.eesz.4M3M.build.flash_size=4M d1_mini.menu.eesz.4M3M.build.flash_size_bytes=0x400000 d1_mini.menu.eesz.4M3M.build.flash_ld=eagle.flash.4m3m.ld @@ -3801,7 +3757,7 @@ d1_mini_pro.menu.eesz.16M14M.build.rfcal_addr=0xFFC000 d1_mini_pro.menu.eesz.16M14M.build.spiffs_start=0x200000 d1_mini_pro.menu.eesz.16M14M.build.spiffs_end=0xFFA000 d1_mini_pro.menu.eesz.16M14M.build.spiffs_blocksize=8192 -d1_mini_pro.menu.eesz.16M15M=16MB (FS:15MB OTA:~512KB) +d1_mini_pro.menu.eesz.16M15M=16MB (FS:15MB OTA:~508KB) d1_mini_pro.menu.eesz.16M15M.build.flash_size=16M d1_mini_pro.menu.eesz.16M15M.build.flash_size_bytes=0x1000000 d1_mini_pro.menu.eesz.16M15M.build.flash_ld=eagle.flash.16m15m.ld @@ -3967,82 +3923,82 @@ d1_mini_lite.upload.resetmethod=nodemcu d1_mini_lite.build.flash_mode=dout d1_mini_lite.build.flash_flags=-DFLASHMODE_DOUT d1_mini_lite.build.flash_freq=40 -d1_mini_lite.menu.eesz.1M64=1MB (FS:64KB OTA:~470KB) +d1_mini_lite.menu.eesz.1M64=1MB (FS:64KB OTA:~466KB) d1_mini_lite.menu.eesz.1M64.build.flash_size=1M d1_mini_lite.menu.eesz.1M64.build.flash_size_bytes=0x100000 d1_mini_lite.menu.eesz.1M64.build.flash_ld=eagle.flash.1m64.ld d1_mini_lite.menu.eesz.1M64.build.spiffs_pagesize=256 -d1_mini_lite.menu.eesz.1M64.upload.maximum_size=958448 +d1_mini_lite.menu.eesz.1M64.upload.maximum_size=950256 d1_mini_lite.menu.eesz.1M64.build.rfcal_addr=0xFC000 d1_mini_lite.menu.eesz.1M64.build.spiffs_start=0xEB000 d1_mini_lite.menu.eesz.1M64.build.spiffs_end=0xFB000 d1_mini_lite.menu.eesz.1M64.build.spiffs_blocksize=4096 -d1_mini_lite.menu.eesz.1M128=1MB (FS:128KB OTA:~438KB) +d1_mini_lite.menu.eesz.1M128=1MB (FS:128KB OTA:~434KB) d1_mini_lite.menu.eesz.1M128.build.flash_size=1M d1_mini_lite.menu.eesz.1M128.build.flash_size_bytes=0x100000 d1_mini_lite.menu.eesz.1M128.build.flash_ld=eagle.flash.1m128.ld d1_mini_lite.menu.eesz.1M128.build.spiffs_pagesize=256 -d1_mini_lite.menu.eesz.1M128.upload.maximum_size=892912 +d1_mini_lite.menu.eesz.1M128.upload.maximum_size=884720 d1_mini_lite.menu.eesz.1M128.build.rfcal_addr=0xFC000 d1_mini_lite.menu.eesz.1M128.build.spiffs_start=0xDB000 d1_mini_lite.menu.eesz.1M128.build.spiffs_end=0xFB000 d1_mini_lite.menu.eesz.1M128.build.spiffs_blocksize=4096 -d1_mini_lite.menu.eesz.1M144=1MB (FS:144KB OTA:~430KB) +d1_mini_lite.menu.eesz.1M144=1MB (FS:144KB OTA:~426KB) d1_mini_lite.menu.eesz.1M144.build.flash_size=1M d1_mini_lite.menu.eesz.1M144.build.flash_size_bytes=0x100000 d1_mini_lite.menu.eesz.1M144.build.flash_ld=eagle.flash.1m144.ld d1_mini_lite.menu.eesz.1M144.build.spiffs_pagesize=256 -d1_mini_lite.menu.eesz.1M144.upload.maximum_size=876528 +d1_mini_lite.menu.eesz.1M144.upload.maximum_size=868336 d1_mini_lite.menu.eesz.1M144.build.rfcal_addr=0xFC000 d1_mini_lite.menu.eesz.1M144.build.spiffs_start=0xD7000 d1_mini_lite.menu.eesz.1M144.build.spiffs_end=0xFB000 d1_mini_lite.menu.eesz.1M144.build.spiffs_blocksize=4096 -d1_mini_lite.menu.eesz.1M160=1MB (FS:160KB OTA:~422KB) +d1_mini_lite.menu.eesz.1M160=1MB (FS:160KB OTA:~418KB) d1_mini_lite.menu.eesz.1M160.build.flash_size=1M d1_mini_lite.menu.eesz.1M160.build.flash_size_bytes=0x100000 d1_mini_lite.menu.eesz.1M160.build.flash_ld=eagle.flash.1m160.ld d1_mini_lite.menu.eesz.1M160.build.spiffs_pagesize=256 -d1_mini_lite.menu.eesz.1M160.upload.maximum_size=860144 +d1_mini_lite.menu.eesz.1M160.upload.maximum_size=851952 d1_mini_lite.menu.eesz.1M160.build.rfcal_addr=0xFC000 d1_mini_lite.menu.eesz.1M160.build.spiffs_start=0xD3000 d1_mini_lite.menu.eesz.1M160.build.spiffs_end=0xFB000 d1_mini_lite.menu.eesz.1M160.build.spiffs_blocksize=4096 -d1_mini_lite.menu.eesz.1M192=1MB (FS:192KB OTA:~406KB) +d1_mini_lite.menu.eesz.1M192=1MB (FS:192KB OTA:~402KB) d1_mini_lite.menu.eesz.1M192.build.flash_size=1M d1_mini_lite.menu.eesz.1M192.build.flash_size_bytes=0x100000 d1_mini_lite.menu.eesz.1M192.build.flash_ld=eagle.flash.1m192.ld d1_mini_lite.menu.eesz.1M192.build.spiffs_pagesize=256 -d1_mini_lite.menu.eesz.1M192.upload.maximum_size=827376 +d1_mini_lite.menu.eesz.1M192.upload.maximum_size=819184 d1_mini_lite.menu.eesz.1M192.build.rfcal_addr=0xFC000 d1_mini_lite.menu.eesz.1M192.build.spiffs_start=0xCB000 d1_mini_lite.menu.eesz.1M192.build.spiffs_end=0xFB000 d1_mini_lite.menu.eesz.1M192.build.spiffs_blocksize=4096 -d1_mini_lite.menu.eesz.1M256=1MB (FS:256KB OTA:~374KB) +d1_mini_lite.menu.eesz.1M256=1MB (FS:256KB OTA:~370KB) d1_mini_lite.menu.eesz.1M256.build.flash_size=1M d1_mini_lite.menu.eesz.1M256.build.flash_size_bytes=0x100000 d1_mini_lite.menu.eesz.1M256.build.flash_ld=eagle.flash.1m256.ld d1_mini_lite.menu.eesz.1M256.build.spiffs_pagesize=256 -d1_mini_lite.menu.eesz.1M256.upload.maximum_size=761840 +d1_mini_lite.menu.eesz.1M256.upload.maximum_size=753648 d1_mini_lite.menu.eesz.1M256.build.rfcal_addr=0xFC000 d1_mini_lite.menu.eesz.1M256.build.spiffs_start=0xBB000 d1_mini_lite.menu.eesz.1M256.build.spiffs_end=0xFB000 d1_mini_lite.menu.eesz.1M256.build.spiffs_blocksize=4096 -d1_mini_lite.menu.eesz.1M512=1MB (FS:512KB OTA:~246KB) +d1_mini_lite.menu.eesz.1M512=1MB (FS:512KB OTA:~242KB) d1_mini_lite.menu.eesz.1M512.build.flash_size=1M d1_mini_lite.menu.eesz.1M512.build.flash_size_bytes=0x100000 d1_mini_lite.menu.eesz.1M512.build.flash_ld=eagle.flash.1m512.ld d1_mini_lite.menu.eesz.1M512.build.spiffs_pagesize=256 -d1_mini_lite.menu.eesz.1M512.upload.maximum_size=499696 +d1_mini_lite.menu.eesz.1M512.upload.maximum_size=491504 d1_mini_lite.menu.eesz.1M512.build.rfcal_addr=0xFC000 d1_mini_lite.menu.eesz.1M512.build.spiffs_start=0x7B000 d1_mini_lite.menu.eesz.1M512.build.spiffs_end=0xFB000 d1_mini_lite.menu.eesz.1M512.build.spiffs_blocksize=8192 -d1_mini_lite.menu.eesz.1M=1MB (FS:none OTA:~502KB) +d1_mini_lite.menu.eesz.1M=1MB (FS:none OTA:~498KB) d1_mini_lite.menu.eesz.1M.build.flash_size=1M d1_mini_lite.menu.eesz.1M.build.flash_size_bytes=0x100000 d1_mini_lite.menu.eesz.1M.build.flash_ld=eagle.flash.1m.ld d1_mini_lite.menu.eesz.1M.build.spiffs_pagesize=256 -d1_mini_lite.menu.eesz.1M.upload.maximum_size=1023984 +d1_mini_lite.menu.eesz.1M.upload.maximum_size=1015792 d1_mini_lite.menu.eesz.1M.build.rfcal_addr=0xFC000 d1_mini_lite.menu.ip.lm2f=v2 Lower Memory d1_mini_lite.menu.ip.lm2f.build.lwip_include=lwip2/include @@ -4210,7 +4166,7 @@ d1.menu.eesz.4M2M.build.rfcal_addr=0x3FC000 d1.menu.eesz.4M2M.build.spiffs_start=0x200000 d1.menu.eesz.4M2M.build.spiffs_end=0x3FA000 d1.menu.eesz.4M2M.build.spiffs_blocksize=8192 -d1.menu.eesz.4M3M=4MB (FS:3MB OTA:~512KB) +d1.menu.eesz.4M3M=4MB (FS:3MB OTA:~508KB) d1.menu.eesz.4M3M.build.flash_size=4M d1.menu.eesz.4M3M.build.flash_size_bytes=0x400000 d1.menu.eesz.4M3M.build.flash_ld=eagle.flash.4m3m.ld @@ -4406,7 +4362,7 @@ espino.menu.eesz.4M2M.build.rfcal_addr=0x3FC000 espino.menu.eesz.4M2M.build.spiffs_start=0x200000 espino.menu.eesz.4M2M.build.spiffs_end=0x3FA000 espino.menu.eesz.4M2M.build.spiffs_blocksize=8192 -espino.menu.eesz.4M3M=4MB (FS:3MB OTA:~512KB) +espino.menu.eesz.4M3M=4MB (FS:3MB OTA:~508KB) espino.menu.eesz.4M3M.build.flash_size=4M espino.menu.eesz.4M3M.build.flash_size_bytes=0x400000 espino.menu.eesz.4M3M.build.flash_ld=eagle.flash.4m3m.ld @@ -4599,7 +4555,7 @@ espinotee.menu.eesz.4M2M.build.rfcal_addr=0x3FC000 espinotee.menu.eesz.4M2M.build.spiffs_start=0x200000 espinotee.menu.eesz.4M2M.build.spiffs_end=0x3FA000 espinotee.menu.eesz.4M2M.build.spiffs_blocksize=8192 -espinotee.menu.eesz.4M3M=4MB (FS:3MB OTA:~512KB) +espinotee.menu.eesz.4M3M=4MB (FS:3MB OTA:~508KB) espinotee.menu.eesz.4M3M.build.flash_size=4M espinotee.menu.eesz.4M3M.build.flash_size_bytes=0x400000 espinotee.menu.eesz.4M3M.build.flash_ld=eagle.flash.4m3m.ld @@ -4802,82 +4758,82 @@ wifinfo.menu.FlashFreq.40=40MHz wifinfo.menu.FlashFreq.40.build.flash_freq=40 wifinfo.menu.FlashFreq.80=80MHz wifinfo.menu.FlashFreq.80.build.flash_freq=80 -wifinfo.menu.eesz.1M64=1MB (FS:64KB OTA:~470KB) +wifinfo.menu.eesz.1M64=1MB (FS:64KB OTA:~466KB) wifinfo.menu.eesz.1M64.build.flash_size=1M wifinfo.menu.eesz.1M64.build.flash_size_bytes=0x100000 wifinfo.menu.eesz.1M64.build.flash_ld=eagle.flash.1m64.ld wifinfo.menu.eesz.1M64.build.spiffs_pagesize=256 -wifinfo.menu.eesz.1M64.upload.maximum_size=958448 +wifinfo.menu.eesz.1M64.upload.maximum_size=950256 wifinfo.menu.eesz.1M64.build.rfcal_addr=0xFC000 wifinfo.menu.eesz.1M64.build.spiffs_start=0xEB000 wifinfo.menu.eesz.1M64.build.spiffs_end=0xFB000 wifinfo.menu.eesz.1M64.build.spiffs_blocksize=4096 -wifinfo.menu.eesz.1M128=1MB (FS:128KB OTA:~438KB) +wifinfo.menu.eesz.1M128=1MB (FS:128KB OTA:~434KB) wifinfo.menu.eesz.1M128.build.flash_size=1M wifinfo.menu.eesz.1M128.build.flash_size_bytes=0x100000 wifinfo.menu.eesz.1M128.build.flash_ld=eagle.flash.1m128.ld wifinfo.menu.eesz.1M128.build.spiffs_pagesize=256 -wifinfo.menu.eesz.1M128.upload.maximum_size=892912 +wifinfo.menu.eesz.1M128.upload.maximum_size=884720 wifinfo.menu.eesz.1M128.build.rfcal_addr=0xFC000 wifinfo.menu.eesz.1M128.build.spiffs_start=0xDB000 wifinfo.menu.eesz.1M128.build.spiffs_end=0xFB000 wifinfo.menu.eesz.1M128.build.spiffs_blocksize=4096 -wifinfo.menu.eesz.1M144=1MB (FS:144KB OTA:~430KB) +wifinfo.menu.eesz.1M144=1MB (FS:144KB OTA:~426KB) wifinfo.menu.eesz.1M144.build.flash_size=1M wifinfo.menu.eesz.1M144.build.flash_size_bytes=0x100000 wifinfo.menu.eesz.1M144.build.flash_ld=eagle.flash.1m144.ld wifinfo.menu.eesz.1M144.build.spiffs_pagesize=256 -wifinfo.menu.eesz.1M144.upload.maximum_size=876528 +wifinfo.menu.eesz.1M144.upload.maximum_size=868336 wifinfo.menu.eesz.1M144.build.rfcal_addr=0xFC000 wifinfo.menu.eesz.1M144.build.spiffs_start=0xD7000 wifinfo.menu.eesz.1M144.build.spiffs_end=0xFB000 wifinfo.menu.eesz.1M144.build.spiffs_blocksize=4096 -wifinfo.menu.eesz.1M160=1MB (FS:160KB OTA:~422KB) +wifinfo.menu.eesz.1M160=1MB (FS:160KB OTA:~418KB) wifinfo.menu.eesz.1M160.build.flash_size=1M wifinfo.menu.eesz.1M160.build.flash_size_bytes=0x100000 wifinfo.menu.eesz.1M160.build.flash_ld=eagle.flash.1m160.ld wifinfo.menu.eesz.1M160.build.spiffs_pagesize=256 -wifinfo.menu.eesz.1M160.upload.maximum_size=860144 +wifinfo.menu.eesz.1M160.upload.maximum_size=851952 wifinfo.menu.eesz.1M160.build.rfcal_addr=0xFC000 wifinfo.menu.eesz.1M160.build.spiffs_start=0xD3000 wifinfo.menu.eesz.1M160.build.spiffs_end=0xFB000 wifinfo.menu.eesz.1M160.build.spiffs_blocksize=4096 -wifinfo.menu.eesz.1M192=1MB (FS:192KB OTA:~406KB) +wifinfo.menu.eesz.1M192=1MB (FS:192KB OTA:~402KB) wifinfo.menu.eesz.1M192.build.flash_size=1M wifinfo.menu.eesz.1M192.build.flash_size_bytes=0x100000 wifinfo.menu.eesz.1M192.build.flash_ld=eagle.flash.1m192.ld wifinfo.menu.eesz.1M192.build.spiffs_pagesize=256 -wifinfo.menu.eesz.1M192.upload.maximum_size=827376 +wifinfo.menu.eesz.1M192.upload.maximum_size=819184 wifinfo.menu.eesz.1M192.build.rfcal_addr=0xFC000 wifinfo.menu.eesz.1M192.build.spiffs_start=0xCB000 wifinfo.menu.eesz.1M192.build.spiffs_end=0xFB000 wifinfo.menu.eesz.1M192.build.spiffs_blocksize=4096 -wifinfo.menu.eesz.1M256=1MB (FS:256KB OTA:~374KB) +wifinfo.menu.eesz.1M256=1MB (FS:256KB OTA:~370KB) wifinfo.menu.eesz.1M256.build.flash_size=1M wifinfo.menu.eesz.1M256.build.flash_size_bytes=0x100000 wifinfo.menu.eesz.1M256.build.flash_ld=eagle.flash.1m256.ld wifinfo.menu.eesz.1M256.build.spiffs_pagesize=256 -wifinfo.menu.eesz.1M256.upload.maximum_size=761840 +wifinfo.menu.eesz.1M256.upload.maximum_size=753648 wifinfo.menu.eesz.1M256.build.rfcal_addr=0xFC000 wifinfo.menu.eesz.1M256.build.spiffs_start=0xBB000 wifinfo.menu.eesz.1M256.build.spiffs_end=0xFB000 wifinfo.menu.eesz.1M256.build.spiffs_blocksize=4096 -wifinfo.menu.eesz.1M512=1MB (FS:512KB OTA:~246KB) +wifinfo.menu.eesz.1M512=1MB (FS:512KB OTA:~242KB) wifinfo.menu.eesz.1M512.build.flash_size=1M wifinfo.menu.eesz.1M512.build.flash_size_bytes=0x100000 wifinfo.menu.eesz.1M512.build.flash_ld=eagle.flash.1m512.ld wifinfo.menu.eesz.1M512.build.spiffs_pagesize=256 -wifinfo.menu.eesz.1M512.upload.maximum_size=499696 +wifinfo.menu.eesz.1M512.upload.maximum_size=491504 wifinfo.menu.eesz.1M512.build.rfcal_addr=0xFC000 wifinfo.menu.eesz.1M512.build.spiffs_start=0x7B000 wifinfo.menu.eesz.1M512.build.spiffs_end=0xFB000 wifinfo.menu.eesz.1M512.build.spiffs_blocksize=8192 -wifinfo.menu.eesz.1M=1MB (FS:none OTA:~502KB) +wifinfo.menu.eesz.1M=1MB (FS:none OTA:~498KB) wifinfo.menu.eesz.1M.build.flash_size=1M wifinfo.menu.eesz.1M.build.flash_size_bytes=0x100000 wifinfo.menu.eesz.1M.build.flash_ld=eagle.flash.1m.ld wifinfo.menu.eesz.1M.build.spiffs_pagesize=256 -wifinfo.menu.eesz.1M.upload.maximum_size=1023984 +wifinfo.menu.eesz.1M.upload.maximum_size=1015792 wifinfo.menu.eesz.1M.build.rfcal_addr=0xFC000 wifinfo.menu.ip.lm2f=v2 Lower Memory wifinfo.menu.ip.lm2f.build.lwip_include=lwip2/include @@ -5057,7 +5013,7 @@ arduino-esp8266.menu.eesz.4M2M.build.rfcal_addr=0x3FC000 arduino-esp8266.menu.eesz.4M2M.build.spiffs_start=0x200000 arduino-esp8266.menu.eesz.4M2M.build.spiffs_end=0x3FA000 arduino-esp8266.menu.eesz.4M2M.build.spiffs_blocksize=8192 -arduino-esp8266.menu.eesz.4M3M=4MB (FS:3MB OTA:~512KB) +arduino-esp8266.menu.eesz.4M3M=4MB (FS:3MB OTA:~508KB) arduino-esp8266.menu.eesz.4M3M.build.flash_size=4M arduino-esp8266.menu.eesz.4M3M.build.flash_size_bytes=0x400000 arduino-esp8266.menu.eesz.4M3M.build.flash_ld=eagle.flash.4m3m.ld @@ -5241,42 +5197,42 @@ gen4iod.upload.resetmethod=nodemcu gen4iod.build.flash_mode=dio gen4iod.build.flash_flags=-DFLASHMODE_DIO gen4iod.build.flash_freq=80 -gen4iod.menu.eesz.512K32=512KB (FS:32KB OTA:~230KB) +gen4iod.menu.eesz.512K32=512KB (FS:32KB OTA:~226KB) gen4iod.menu.eesz.512K32.build.flash_size=512K gen4iod.menu.eesz.512K32.build.flash_size_bytes=0x80000 gen4iod.menu.eesz.512K32.build.flash_ld=eagle.flash.512k32.ld gen4iod.menu.eesz.512K32.build.spiffs_pagesize=256 -gen4iod.menu.eesz.512K32.upload.maximum_size=466928 +gen4iod.menu.eesz.512K32.upload.maximum_size=458736 gen4iod.menu.eesz.512K32.build.rfcal_addr=0x7C000 gen4iod.menu.eesz.512K32.build.spiffs_start=0x73000 gen4iod.menu.eesz.512K32.build.spiffs_end=0x7B000 gen4iod.menu.eesz.512K32.build.spiffs_blocksize=4096 -gen4iod.menu.eesz.512K64=512KB (FS:64KB OTA:~214KB) +gen4iod.menu.eesz.512K64=512KB (FS:64KB OTA:~210KB) gen4iod.menu.eesz.512K64.build.flash_size=512K gen4iod.menu.eesz.512K64.build.flash_size_bytes=0x80000 gen4iod.menu.eesz.512K64.build.flash_ld=eagle.flash.512k64.ld gen4iod.menu.eesz.512K64.build.spiffs_pagesize=256 -gen4iod.menu.eesz.512K64.upload.maximum_size=434160 +gen4iod.menu.eesz.512K64.upload.maximum_size=425968 gen4iod.menu.eesz.512K64.build.rfcal_addr=0x7C000 gen4iod.menu.eesz.512K64.build.spiffs_start=0x6B000 gen4iod.menu.eesz.512K64.build.spiffs_end=0x7B000 gen4iod.menu.eesz.512K64.build.spiffs_blocksize=4096 -gen4iod.menu.eesz.512K128=512KB (FS:128KB OTA:~182KB) +gen4iod.menu.eesz.512K128=512KB (FS:128KB OTA:~178KB) gen4iod.menu.eesz.512K128.build.flash_size=512K gen4iod.menu.eesz.512K128.build.flash_size_bytes=0x80000 gen4iod.menu.eesz.512K128.build.flash_ld=eagle.flash.512k128.ld gen4iod.menu.eesz.512K128.build.spiffs_pagesize=256 -gen4iod.menu.eesz.512K128.upload.maximum_size=368624 +gen4iod.menu.eesz.512K128.upload.maximum_size=360432 gen4iod.menu.eesz.512K128.build.rfcal_addr=0x7C000 gen4iod.menu.eesz.512K128.build.spiffs_start=0x5B000 gen4iod.menu.eesz.512K128.build.spiffs_end=0x7B000 gen4iod.menu.eesz.512K128.build.spiffs_blocksize=4096 -gen4iod.menu.eesz.512K=512KB (FS:none OTA:~246KB) +gen4iod.menu.eesz.512K=512KB (FS:none OTA:~242KB) gen4iod.menu.eesz.512K.build.flash_size=512K gen4iod.menu.eesz.512K.build.flash_size_bytes=0x80000 gen4iod.menu.eesz.512K.build.flash_ld=eagle.flash.512k.ld gen4iod.menu.eesz.512K.build.spiffs_pagesize=256 -gen4iod.menu.eesz.512K.upload.maximum_size=499696 +gen4iod.menu.eesz.512K.upload.maximum_size=491504 gen4iod.menu.eesz.512K.build.rfcal_addr=0x7C000 gen4iod.menu.ip.lm2f=v2 Lower Memory gen4iod.menu.ip.lm2f.build.lwip_include=lwip2/include @@ -5445,7 +5401,7 @@ oak.menu.eesz.4M2M.build.rfcal_addr=0x3FC000 oak.menu.eesz.4M2M.build.spiffs_start=0x200000 oak.menu.eesz.4M2M.build.spiffs_end=0x3FA000 oak.menu.eesz.4M2M.build.spiffs_blocksize=8192 -oak.menu.eesz.4M3M=4MB (FS:3MB OTA:~512KB) +oak.menu.eesz.4M3M=4MB (FS:3MB OTA:~508KB) oak.menu.eesz.4M3M.build.flash_size=4M oak.menu.eesz.4M3M.build.flash_size_bytes=0x400000 oak.menu.eesz.4M3M.build.flash_ld=eagle.flash.4m3m.ld @@ -5638,7 +5594,7 @@ wifiduino.menu.eesz.4M2M.build.rfcal_addr=0x3FC000 wifiduino.menu.eesz.4M2M.build.spiffs_start=0x200000 wifiduino.menu.eesz.4M2M.build.spiffs_end=0x3FA000 wifiduino.menu.eesz.4M2M.build.spiffs_blocksize=8192 -wifiduino.menu.eesz.4M3M=4MB (FS:3MB OTA:~512KB) +wifiduino.menu.eesz.4M3M=4MB (FS:3MB OTA:~508KB) wifiduino.menu.eesz.4M3M.build.flash_size=4M wifiduino.menu.eesz.4M3M.build.flash_size_bytes=0x400000 wifiduino.menu.eesz.4M3M.build.flash_ld=eagle.flash.4m3m.ld @@ -5834,84 +5790,84 @@ wifi_slot.menu.FlashMode.qout.build.flash_flags=-DFLASHMODE_QOUT wifi_slot.menu.FlashMode.qio=QIO (fast) wifi_slot.menu.FlashMode.qio.build.flash_mode=qio wifi_slot.menu.FlashMode.qio.build.flash_flags=-DFLASHMODE_QIO -wifi_slot.menu.eesz.1M64=1MB (FS:64KB OTA:~470KB) +wifi_slot.menu.eesz.1M64=1MB (FS:64KB OTA:~466KB) wifi_slot.menu.eesz.1M64.build.flash_size=1M wifi_slot.menu.eesz.1M64.build.flash_size_bytes=0x100000 wifi_slot.menu.eesz.1M64.build.flash_ld=eagle.flash.1m64.ld wifi_slot.menu.eesz.1M64.build.spiffs_pagesize=256 -wifi_slot.menu.eesz.1M64.upload.maximum_size=958448 +wifi_slot.menu.eesz.1M64.upload.maximum_size=950256 wifi_slot.menu.eesz.1M64.build.rfcal_addr=0xFC000 wifi_slot.menu.eesz.1M64.build.spiffs_start=0xEB000 wifi_slot.menu.eesz.1M64.build.spiffs_end=0xFB000 wifi_slot.menu.eesz.1M64.build.spiffs_blocksize=4096 -wifi_slot.menu.eesz.1M128=1MB (FS:128KB OTA:~438KB) +wifi_slot.menu.eesz.1M128=1MB (FS:128KB OTA:~434KB) wifi_slot.menu.eesz.1M128.build.flash_size=1M wifi_slot.menu.eesz.1M128.build.flash_size_bytes=0x100000 wifi_slot.menu.eesz.1M128.build.flash_ld=eagle.flash.1m128.ld wifi_slot.menu.eesz.1M128.build.spiffs_pagesize=256 -wifi_slot.menu.eesz.1M128.upload.maximum_size=892912 +wifi_slot.menu.eesz.1M128.upload.maximum_size=884720 wifi_slot.menu.eesz.1M128.build.rfcal_addr=0xFC000 wifi_slot.menu.eesz.1M128.build.spiffs_start=0xDB000 wifi_slot.menu.eesz.1M128.build.spiffs_end=0xFB000 wifi_slot.menu.eesz.1M128.build.spiffs_blocksize=4096 -wifi_slot.menu.eesz.1M144=1MB (FS:144KB OTA:~430KB) +wifi_slot.menu.eesz.1M144=1MB (FS:144KB OTA:~426KB) wifi_slot.menu.eesz.1M144.build.flash_size=1M wifi_slot.menu.eesz.1M144.build.flash_size_bytes=0x100000 wifi_slot.menu.eesz.1M144.build.flash_ld=eagle.flash.1m144.ld wifi_slot.menu.eesz.1M144.build.spiffs_pagesize=256 -wifi_slot.menu.eesz.1M144.upload.maximum_size=876528 +wifi_slot.menu.eesz.1M144.upload.maximum_size=868336 wifi_slot.menu.eesz.1M144.build.rfcal_addr=0xFC000 wifi_slot.menu.eesz.1M144.build.spiffs_start=0xD7000 wifi_slot.menu.eesz.1M144.build.spiffs_end=0xFB000 wifi_slot.menu.eesz.1M144.build.spiffs_blocksize=4096 -wifi_slot.menu.eesz.1M160=1MB (FS:160KB OTA:~422KB) +wifi_slot.menu.eesz.1M160=1MB (FS:160KB OTA:~418KB) wifi_slot.menu.eesz.1M160.build.flash_size=1M wifi_slot.menu.eesz.1M160.build.flash_size_bytes=0x100000 wifi_slot.menu.eesz.1M160.build.flash_ld=eagle.flash.1m160.ld wifi_slot.menu.eesz.1M160.build.spiffs_pagesize=256 -wifi_slot.menu.eesz.1M160.upload.maximum_size=860144 +wifi_slot.menu.eesz.1M160.upload.maximum_size=851952 wifi_slot.menu.eesz.1M160.build.rfcal_addr=0xFC000 wifi_slot.menu.eesz.1M160.build.spiffs_start=0xD3000 wifi_slot.menu.eesz.1M160.build.spiffs_end=0xFB000 wifi_slot.menu.eesz.1M160.build.spiffs_blocksize=4096 -wifi_slot.menu.eesz.1M192=1MB (FS:192KB OTA:~406KB) +wifi_slot.menu.eesz.1M192=1MB (FS:192KB OTA:~402KB) wifi_slot.menu.eesz.1M192.build.flash_size=1M wifi_slot.menu.eesz.1M192.build.flash_size_bytes=0x100000 wifi_slot.menu.eesz.1M192.build.flash_ld=eagle.flash.1m192.ld wifi_slot.menu.eesz.1M192.build.spiffs_pagesize=256 -wifi_slot.menu.eesz.1M192.upload.maximum_size=827376 +wifi_slot.menu.eesz.1M192.upload.maximum_size=819184 wifi_slot.menu.eesz.1M192.build.rfcal_addr=0xFC000 wifi_slot.menu.eesz.1M192.build.spiffs_start=0xCB000 wifi_slot.menu.eesz.1M192.build.spiffs_end=0xFB000 wifi_slot.menu.eesz.1M192.build.spiffs_blocksize=4096 -wifi_slot.menu.eesz.1M256=1MB (FS:256KB OTA:~374KB) +wifi_slot.menu.eesz.1M256=1MB (FS:256KB OTA:~370KB) wifi_slot.menu.eesz.1M256.build.flash_size=1M wifi_slot.menu.eesz.1M256.build.flash_size_bytes=0x100000 wifi_slot.menu.eesz.1M256.build.flash_ld=eagle.flash.1m256.ld wifi_slot.menu.eesz.1M256.build.spiffs_pagesize=256 -wifi_slot.menu.eesz.1M256.upload.maximum_size=761840 +wifi_slot.menu.eesz.1M256.upload.maximum_size=753648 wifi_slot.menu.eesz.1M256.build.rfcal_addr=0xFC000 wifi_slot.menu.eesz.1M256.build.spiffs_start=0xBB000 wifi_slot.menu.eesz.1M256.build.spiffs_end=0xFB000 wifi_slot.menu.eesz.1M256.build.spiffs_blocksize=4096 -wifi_slot.menu.eesz.1M512=1MB (FS:512KB OTA:~246KB) +wifi_slot.menu.eesz.1M512=1MB (FS:512KB OTA:~242KB) wifi_slot.menu.eesz.1M512.build.flash_size=1M wifi_slot.menu.eesz.1M512.build.flash_size_bytes=0x100000 wifi_slot.menu.eesz.1M512.build.flash_ld=eagle.flash.1m512.ld wifi_slot.menu.eesz.1M512.build.spiffs_pagesize=256 -wifi_slot.menu.eesz.1M512.upload.maximum_size=499696 +wifi_slot.menu.eesz.1M512.upload.maximum_size=491504 wifi_slot.menu.eesz.1M512.build.rfcal_addr=0xFC000 wifi_slot.menu.eesz.1M512.build.spiffs_start=0x7B000 wifi_slot.menu.eesz.1M512.build.spiffs_end=0xFB000 wifi_slot.menu.eesz.1M512.build.spiffs_blocksize=8192 -wifi_slot.menu.eesz.1M=1MB (FS:none OTA:~502KB) +wifi_slot.menu.eesz.1M=1MB (FS:none OTA:~498KB) wifi_slot.menu.eesz.1M.build.flash_size=1M wifi_slot.menu.eesz.1M.build.flash_size_bytes=0x100000 wifi_slot.menu.eesz.1M.build.flash_ld=eagle.flash.1m.ld wifi_slot.menu.eesz.1M.build.spiffs_pagesize=256 -wifi_slot.menu.eesz.1M.upload.maximum_size=1023984 +wifi_slot.menu.eesz.1M.upload.maximum_size=1015792 wifi_slot.menu.eesz.1M.build.rfcal_addr=0xFC000 -wifi_slot.menu.eesz.2M64=2MB (FS:64KB OTA:~992KB) +wifi_slot.menu.eesz.2M64=2MB (FS:64KB OTA:~988KB) wifi_slot.menu.eesz.2M64.build.flash_size=2M wifi_slot.menu.eesz.2M64.build.flash_size_bytes=0x200000 wifi_slot.menu.eesz.2M64.build.flash_ld=eagle.flash.2m64.ld @@ -5921,7 +5877,7 @@ wifi_slot.menu.eesz.2M64.build.rfcal_addr=0x1FC000 wifi_slot.menu.eesz.2M64.build.spiffs_start=0x1F0000 wifi_slot.menu.eesz.2M64.build.spiffs_end=0x1FB000 wifi_slot.menu.eesz.2M64.build.spiffs_blocksize=4096 -wifi_slot.menu.eesz.2M128=2MB (FS:128KB OTA:~960KB) +wifi_slot.menu.eesz.2M128=2MB (FS:128KB OTA:~956KB) wifi_slot.menu.eesz.2M128.build.flash_size=2M wifi_slot.menu.eesz.2M128.build.flash_size_bytes=0x200000 wifi_slot.menu.eesz.2M128.build.flash_ld=eagle.flash.2m128.ld @@ -5931,7 +5887,7 @@ wifi_slot.menu.eesz.2M128.build.rfcal_addr=0x1FC000 wifi_slot.menu.eesz.2M128.build.spiffs_start=0x1E0000 wifi_slot.menu.eesz.2M128.build.spiffs_end=0x1FB000 wifi_slot.menu.eesz.2M128.build.spiffs_blocksize=4096 -wifi_slot.menu.eesz.2M256=2MB (FS:256KB OTA:~896KB) +wifi_slot.menu.eesz.2M256=2MB (FS:256KB OTA:~892KB) wifi_slot.menu.eesz.2M256.build.flash_size=2M wifi_slot.menu.eesz.2M256.build.flash_size_bytes=0x200000 wifi_slot.menu.eesz.2M256.build.flash_ld=eagle.flash.2m256.ld @@ -5941,7 +5897,7 @@ wifi_slot.menu.eesz.2M256.build.rfcal_addr=0x1FC000 wifi_slot.menu.eesz.2M256.build.spiffs_start=0x1C0000 wifi_slot.menu.eesz.2M256.build.spiffs_end=0x1FB000 wifi_slot.menu.eesz.2M256.build.spiffs_blocksize=4096 -wifi_slot.menu.eesz.2M512=2MB (FS:512KB OTA:~768KB) +wifi_slot.menu.eesz.2M512=2MB (FS:512KB OTA:~764KB) wifi_slot.menu.eesz.2M512.build.flash_size=2M wifi_slot.menu.eesz.2M512.build.flash_size_bytes=0x200000 wifi_slot.menu.eesz.2M512.build.flash_ld=eagle.flash.2m512.ld @@ -5951,7 +5907,7 @@ wifi_slot.menu.eesz.2M512.build.rfcal_addr=0x1FC000 wifi_slot.menu.eesz.2M512.build.spiffs_start=0x180000 wifi_slot.menu.eesz.2M512.build.spiffs_end=0x1FA000 wifi_slot.menu.eesz.2M512.build.spiffs_blocksize=8192 -wifi_slot.menu.eesz.2M1M=2MB (FS:1MB OTA:~512KB) +wifi_slot.menu.eesz.2M1M=2MB (FS:1MB OTA:~508KB) wifi_slot.menu.eesz.2M1M.build.flash_size=2M wifi_slot.menu.eesz.2M1M.build.flash_size_bytes=0x200000 wifi_slot.menu.eesz.2M1M.build.flash_ld=eagle.flash.2m1m.ld @@ -6134,7 +6090,7 @@ wiolink.menu.eesz.4M2M.build.rfcal_addr=0x3FC000 wiolink.menu.eesz.4M2M.build.spiffs_start=0x200000 wiolink.menu.eesz.4M2M.build.spiffs_end=0x3FA000 wiolink.menu.eesz.4M2M.build.spiffs_blocksize=8192 -wiolink.menu.eesz.4M3M=4MB (FS:3MB OTA:~512KB) +wiolink.menu.eesz.4M3M=4MB (FS:3MB OTA:~508KB) wiolink.menu.eesz.4M3M.build.flash_size=4M wiolink.menu.eesz.4M3M.build.flash_size_bytes=0x400000 wiolink.menu.eesz.4M3M.build.flash_ld=eagle.flash.4m3m.ld @@ -6327,7 +6283,7 @@ espectro.menu.eesz.4M2M.build.rfcal_addr=0x3FC000 espectro.menu.eesz.4M2M.build.spiffs_start=0x200000 espectro.menu.eesz.4M2M.build.spiffs_end=0x3FA000 espectro.menu.eesz.4M2M.build.spiffs_blocksize=8192 -espectro.menu.eesz.4M3M=4MB (FS:3MB OTA:~512KB) +espectro.menu.eesz.4M3M=4MB (FS:3MB OTA:~508KB) espectro.menu.eesz.4M3M.build.flash_size=4M espectro.menu.eesz.4M3M.build.flash_size_bytes=0x400000 espectro.menu.eesz.4M3M.build.flash_ld=eagle.flash.4m3m.ld diff --git a/package/package_esp8266com_index.template.json b/package/package_esp8266com_index.template.json index cc4e3f866d..709238253c 100644 --- a/package/package_esp8266com_index.template.json +++ b/package/package_esp8266com_index.template.json @@ -359,4 +359,4 @@ ] } ] -} +} \ No newline at end of file diff --git a/tools/sdk/ld/eagle.flash.16m14m.ld b/tools/sdk/ld/eagle.flash.16m14m.ld index ccc5eb828c..2b85890b6c 100644 --- a/tools/sdk/ld/eagle.flash.16m14m.ld +++ b/tools/sdk/ld/eagle.flash.16m14m.ld @@ -1,10 +1,11 @@ /* Flash Split for 16M chips */ /* sketch @0x40200000 (~1019KB) (1044464B) */ -/* empty @0x402FEFF0 (~1028KB) (1052688B) */ -/* spiffs @0x40400000 (~14312KB) (14655488B) */ -/* eeprom @0x411FB000 (4KB) */ -/* rfcal @0x411FC000 (4KB) */ -/* wifi @0x411FD000 (12KB) */ +/* empty @0x402FEFF0 (~1020KB) (1044496B) */ +/* otacmds @0x403FE000 (8KB) */ +/* spiffs @0x40400000 (~14312KB) (14655488B) */ +/* eeprom @0x411FB000 (4KB) */ +/* rfcal @0x411FC000 (4KB) */ +/* wifi @0x411FD000 (12KB) */ MEMORY { @@ -18,5 +19,7 @@ PROVIDE ( _FS_start = 0x40400000 ); PROVIDE ( _FS_end = 0x411FA000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x2000 ); +PROVIDE ( _BOOTLOADER_DATA = 0x001FE000 ); +PROVIDE ( _SKETCH_AREA_end = _FS_start ); INCLUDE "local.eagle.app.v6.common.ld" diff --git a/tools/sdk/ld/eagle.flash.16m15m.ld b/tools/sdk/ld/eagle.flash.16m15m.ld index dcb650f662..3f54f2a0da 100644 --- a/tools/sdk/ld/eagle.flash.16m15m.ld +++ b/tools/sdk/ld/eagle.flash.16m15m.ld @@ -1,10 +1,10 @@ /* Flash Split for 16M chips */ /* sketch @0x40200000 (~1019KB) (1044464B) */ -/* empty @0x402FEFF0 (~4KB) (4112B) */ -/* spiffs @0x40300000 (~15336KB) (15704064B) */ -/* eeprom @0x411FB000 (4KB) */ -/* rfcal @0x411FC000 (4KB) */ -/* wifi @0x411FD000 (12KB) */ +/* otacmds @0x402FE000 (8KB) */ +/* spiffs @0x40300000 (~15336KB) (15704064B) */ +/* eeprom @0x411FB000 (4KB) */ +/* rfcal @0x411FC000 (4KB) */ +/* wifi @0x411FD000 (12KB) */ MEMORY { @@ -18,5 +18,7 @@ PROVIDE ( _FS_start = 0x40300000 ); PROVIDE ( _FS_end = 0x411FA000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x2000 ); +PROVIDE ( _BOOTLOADER_DATA = 0x000FE000 ); +PROVIDE ( _SKETCH_AREA_end = _FS_start ); INCLUDE "local.eagle.app.v6.common.ld" diff --git a/tools/sdk/ld/eagle.flash.1m.ld b/tools/sdk/ld/eagle.flash.1m.ld index 57c8ab2da6..e55b4ef55d 100644 --- a/tools/sdk/ld/eagle.flash.1m.ld +++ b/tools/sdk/ld/eagle.flash.1m.ld @@ -1,22 +1,25 @@ /* Flash Split for 1M chips */ -/* sketch @0x40200000 (~999KB) (1023984B) */ -/* empty @0x402F9FF0 (~4KB) (4112B) */ -/* spiffs @0x402FB000 (~0KB) (0B) */ -/* eeprom @0x402FB000 (4KB) */ -/* rfcal @0x402FC000 (4KB) */ -/* wifi @0x402FD000 (12KB) */ +/* sketch @0x40200000 (~991KB) (1015792B) */ +/* empty @0x402F7FF0 (~4KB) (4112B) */ +/* otacmds @0x402F9000 (8KB) */ +/* spiffs @0x402FB000 (~0KB) (0B) */ +/* eeprom @0x402FB000 (4KB) */ +/* rfcal @0x402FC000 (4KB) */ +/* wifi @0x402FD000 (12KB) */ MEMORY { dport0_0_seg : org = 0x3FF00000, len = 0x10 dram0_0_seg : org = 0x3FFE8000, len = 0x14000 iram1_0_seg : org = 0x40100000, len = 0x8000 - irom0_0_seg : org = 0x40201010, len = 0xf9ff0 + irom0_0_seg : org = 0x40201010, len = 0xf7ff0 } PROVIDE ( _FS_start = 0x402FB000 ); PROVIDE ( _FS_end = 0x402FB000 ); PROVIDE ( _FS_page = 0x0 ); PROVIDE ( _FS_block = 0x0 ); +PROVIDE ( _BOOTLOADER_DATA = 0x000F9000 ); +PROVIDE ( _SKETCH_AREA_end = _FS_start ); INCLUDE "local.eagle.app.v6.common.ld" diff --git a/tools/sdk/ld/eagle.flash.1m128.ld b/tools/sdk/ld/eagle.flash.1m128.ld index 729f613986..d84766f4a8 100644 --- a/tools/sdk/ld/eagle.flash.1m128.ld +++ b/tools/sdk/ld/eagle.flash.1m128.ld @@ -1,22 +1,25 @@ /* Flash Split for 1M chips */ -/* sketch @0x40200000 (~871KB) (892912B) */ -/* empty @0x402D9FF0 (~4KB) (4112B) */ -/* spiffs @0x402DB000 (~128KB) (131072B) */ -/* eeprom @0x402FB000 (4KB) */ -/* rfcal @0x402FC000 (4KB) */ -/* wifi @0x402FD000 (12KB) */ +/* sketch @0x40200000 (~863KB) (884720B) */ +/* empty @0x402D7FF0 (~4KB) (4112B) */ +/* otacmds @0x402D9000 (8KB) */ +/* spiffs @0x402DB000 (~128KB) (131072B) */ +/* eeprom @0x402FB000 (4KB) */ +/* rfcal @0x402FC000 (4KB) */ +/* wifi @0x402FD000 (12KB) */ MEMORY { dport0_0_seg : org = 0x3FF00000, len = 0x10 dram0_0_seg : org = 0x3FFE8000, len = 0x14000 iram1_0_seg : org = 0x40100000, len = 0x8000 - irom0_0_seg : org = 0x40201010, len = 0xd9ff0 + irom0_0_seg : org = 0x40201010, len = 0xd7ff0 } PROVIDE ( _FS_start = 0x402DB000 ); PROVIDE ( _FS_end = 0x402FB000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x1000 ); +PROVIDE ( _BOOTLOADER_DATA = 0x000D9000 ); +PROVIDE ( _SKETCH_AREA_end = _FS_start ); INCLUDE "local.eagle.app.v6.common.ld" diff --git a/tools/sdk/ld/eagle.flash.1m144.ld b/tools/sdk/ld/eagle.flash.1m144.ld index e644897c49..7747addebf 100644 --- a/tools/sdk/ld/eagle.flash.1m144.ld +++ b/tools/sdk/ld/eagle.flash.1m144.ld @@ -1,22 +1,25 @@ /* Flash Split for 1M chips */ -/* sketch @0x40200000 (~855KB) (876528B) */ -/* empty @0x402D5FF0 (~4KB) (4112B) */ -/* spiffs @0x402D7000 (~144KB) (147456B) */ -/* eeprom @0x402FB000 (4KB) */ -/* rfcal @0x402FC000 (4KB) */ -/* wifi @0x402FD000 (12KB) */ +/* sketch @0x40200000 (~847KB) (868336B) */ +/* empty @0x402D3FF0 (~4KB) (4112B) */ +/* otacmds @0x402D5000 (8KB) */ +/* spiffs @0x402D7000 (~144KB) (147456B) */ +/* eeprom @0x402FB000 (4KB) */ +/* rfcal @0x402FC000 (4KB) */ +/* wifi @0x402FD000 (12KB) */ MEMORY { dport0_0_seg : org = 0x3FF00000, len = 0x10 dram0_0_seg : org = 0x3FFE8000, len = 0x14000 iram1_0_seg : org = 0x40100000, len = 0x8000 - irom0_0_seg : org = 0x40201010, len = 0xd5ff0 + irom0_0_seg : org = 0x40201010, len = 0xd3ff0 } PROVIDE ( _FS_start = 0x402D7000 ); PROVIDE ( _FS_end = 0x402FB000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x1000 ); +PROVIDE ( _BOOTLOADER_DATA = 0x000D5000 ); +PROVIDE ( _SKETCH_AREA_end = _FS_start ); INCLUDE "local.eagle.app.v6.common.ld" diff --git a/tools/sdk/ld/eagle.flash.1m160.ld b/tools/sdk/ld/eagle.flash.1m160.ld index 08b54f51f1..bd3de2fb0a 100644 --- a/tools/sdk/ld/eagle.flash.1m160.ld +++ b/tools/sdk/ld/eagle.flash.1m160.ld @@ -1,22 +1,25 @@ /* Flash Split for 1M chips */ -/* sketch @0x40200000 (~839KB) (860144B) */ -/* empty @0x402D1FF0 (~4KB) (4112B) */ -/* spiffs @0x402D3000 (~160KB) (163840B) */ -/* eeprom @0x402FB000 (4KB) */ -/* rfcal @0x402FC000 (4KB) */ -/* wifi @0x402FD000 (12KB) */ +/* sketch @0x40200000 (~831KB) (851952B) */ +/* empty @0x402CFFF0 (~4KB) (4112B) */ +/* otacmds @0x402D1000 (8KB) */ +/* spiffs @0x402D3000 (~160KB) (163840B) */ +/* eeprom @0x402FB000 (4KB) */ +/* rfcal @0x402FC000 (4KB) */ +/* wifi @0x402FD000 (12KB) */ MEMORY { dport0_0_seg : org = 0x3FF00000, len = 0x10 dram0_0_seg : org = 0x3FFE8000, len = 0x14000 iram1_0_seg : org = 0x40100000, len = 0x8000 - irom0_0_seg : org = 0x40201010, len = 0xd1ff0 + irom0_0_seg : org = 0x40201010, len = 0xcfff0 } PROVIDE ( _FS_start = 0x402D3000 ); PROVIDE ( _FS_end = 0x402FB000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x1000 ); +PROVIDE ( _BOOTLOADER_DATA = 0x000D1000 ); +PROVIDE ( _SKETCH_AREA_end = _FS_start ); INCLUDE "local.eagle.app.v6.common.ld" diff --git a/tools/sdk/ld/eagle.flash.1m192.ld b/tools/sdk/ld/eagle.flash.1m192.ld index 77ddac33db..a0b5e5d187 100644 --- a/tools/sdk/ld/eagle.flash.1m192.ld +++ b/tools/sdk/ld/eagle.flash.1m192.ld @@ -1,22 +1,25 @@ /* Flash Split for 1M chips */ -/* sketch @0x40200000 (~807KB) (827376B) */ -/* empty @0x402C9FF0 (~4KB) (4112B) */ -/* spiffs @0x402CB000 (~192KB) (196608B) */ -/* eeprom @0x402FB000 (4KB) */ -/* rfcal @0x402FC000 (4KB) */ -/* wifi @0x402FD000 (12KB) */ +/* sketch @0x40200000 (~799KB) (819184B) */ +/* empty @0x402C7FF0 (~4KB) (4112B) */ +/* otacmds @0x402C9000 (8KB) */ +/* spiffs @0x402CB000 (~192KB) (196608B) */ +/* eeprom @0x402FB000 (4KB) */ +/* rfcal @0x402FC000 (4KB) */ +/* wifi @0x402FD000 (12KB) */ MEMORY { dport0_0_seg : org = 0x3FF00000, len = 0x10 dram0_0_seg : org = 0x3FFE8000, len = 0x14000 iram1_0_seg : org = 0x40100000, len = 0x8000 - irom0_0_seg : org = 0x40201010, len = 0xc9ff0 + irom0_0_seg : org = 0x40201010, len = 0xc7ff0 } PROVIDE ( _FS_start = 0x402CB000 ); PROVIDE ( _FS_end = 0x402FB000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x1000 ); +PROVIDE ( _BOOTLOADER_DATA = 0x000C9000 ); +PROVIDE ( _SKETCH_AREA_end = _FS_start ); INCLUDE "local.eagle.app.v6.common.ld" diff --git a/tools/sdk/ld/eagle.flash.1m256.ld b/tools/sdk/ld/eagle.flash.1m256.ld index b197a2b1cc..d8eb188087 100644 --- a/tools/sdk/ld/eagle.flash.1m256.ld +++ b/tools/sdk/ld/eagle.flash.1m256.ld @@ -1,22 +1,25 @@ /* Flash Split for 1M chips */ -/* sketch @0x40200000 (~743KB) (761840B) */ -/* empty @0x402B9FF0 (~4KB) (4112B) */ -/* spiffs @0x402BB000 (~256KB) (262144B) */ -/* eeprom @0x402FB000 (4KB) */ -/* rfcal @0x402FC000 (4KB) */ -/* wifi @0x402FD000 (12KB) */ +/* sketch @0x40200000 (~735KB) (753648B) */ +/* empty @0x402B7FF0 (~4KB) (4112B) */ +/* otacmds @0x402B9000 (8KB) */ +/* spiffs @0x402BB000 (~256KB) (262144B) */ +/* eeprom @0x402FB000 (4KB) */ +/* rfcal @0x402FC000 (4KB) */ +/* wifi @0x402FD000 (12KB) */ MEMORY { dport0_0_seg : org = 0x3FF00000, len = 0x10 dram0_0_seg : org = 0x3FFE8000, len = 0x14000 iram1_0_seg : org = 0x40100000, len = 0x8000 - irom0_0_seg : org = 0x40201010, len = 0xb9ff0 + irom0_0_seg : org = 0x40201010, len = 0xb7ff0 } PROVIDE ( _FS_start = 0x402BB000 ); PROVIDE ( _FS_end = 0x402FB000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x1000 ); +PROVIDE ( _BOOTLOADER_DATA = 0x000B9000 ); +PROVIDE ( _SKETCH_AREA_end = _FS_start ); INCLUDE "local.eagle.app.v6.common.ld" diff --git a/tools/sdk/ld/eagle.flash.1m512.ld b/tools/sdk/ld/eagle.flash.1m512.ld index 811f7a1505..0745f7e5dd 100644 --- a/tools/sdk/ld/eagle.flash.1m512.ld +++ b/tools/sdk/ld/eagle.flash.1m512.ld @@ -1,22 +1,25 @@ /* Flash Split for 1M chips */ -/* sketch @0x40200000 (~487KB) (499696B) */ -/* empty @0x40279FF0 (~4KB) (4112B) */ -/* spiffs @0x4027B000 (~512KB) (524288B) */ -/* eeprom @0x402FB000 (4KB) */ -/* rfcal @0x402FC000 (4KB) */ -/* wifi @0x402FD000 (12KB) */ +/* sketch @0x40200000 (~479KB) (491504B) */ +/* empty @0x40277FF0 (~4KB) (4112B) */ +/* otacmds @0x40279000 (8KB) */ +/* spiffs @0x4027B000 (~512KB) (524288B) */ +/* eeprom @0x402FB000 (4KB) */ +/* rfcal @0x402FC000 (4KB) */ +/* wifi @0x402FD000 (12KB) */ MEMORY { dport0_0_seg : org = 0x3FF00000, len = 0x10 dram0_0_seg : org = 0x3FFE8000, len = 0x14000 iram1_0_seg : org = 0x40100000, len = 0x8000 - irom0_0_seg : org = 0x40201010, len = 0x79ff0 + irom0_0_seg : org = 0x40201010, len = 0x77ff0 } PROVIDE ( _FS_start = 0x4027B000 ); PROVIDE ( _FS_end = 0x402FB000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x2000 ); +PROVIDE ( _BOOTLOADER_DATA = 0x00079000 ); +PROVIDE ( _SKETCH_AREA_end = _FS_start ); INCLUDE "local.eagle.app.v6.common.ld" diff --git a/tools/sdk/ld/eagle.flash.1m64.ld b/tools/sdk/ld/eagle.flash.1m64.ld index 92447c0f9c..88ec55e536 100644 --- a/tools/sdk/ld/eagle.flash.1m64.ld +++ b/tools/sdk/ld/eagle.flash.1m64.ld @@ -1,22 +1,25 @@ /* Flash Split for 1M chips */ -/* sketch @0x40200000 (~935KB) (958448B) */ -/* empty @0x402E9FF0 (~4KB) (4112B) */ -/* spiffs @0x402EB000 (~64KB) (65536B) */ -/* eeprom @0x402FB000 (4KB) */ -/* rfcal @0x402FC000 (4KB) */ -/* wifi @0x402FD000 (12KB) */ +/* sketch @0x40200000 (~927KB) (950256B) */ +/* empty @0x402E7FF0 (~4KB) (4112B) */ +/* otacmds @0x402E9000 (8KB) */ +/* spiffs @0x402EB000 (~64KB) (65536B) */ +/* eeprom @0x402FB000 (4KB) */ +/* rfcal @0x402FC000 (4KB) */ +/* wifi @0x402FD000 (12KB) */ MEMORY { dport0_0_seg : org = 0x3FF00000, len = 0x10 dram0_0_seg : org = 0x3FFE8000, len = 0x14000 iram1_0_seg : org = 0x40100000, len = 0x8000 - irom0_0_seg : org = 0x40201010, len = 0xe9ff0 + irom0_0_seg : org = 0x40201010, len = 0xe7ff0 } PROVIDE ( _FS_start = 0x402EB000 ); PROVIDE ( _FS_end = 0x402FB000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x1000 ); +PROVIDE ( _BOOTLOADER_DATA = 0x000E9000 ); +PROVIDE ( _SKETCH_AREA_end = _FS_start ); INCLUDE "local.eagle.app.v6.common.ld" diff --git a/tools/sdk/ld/eagle.flash.2m.ld b/tools/sdk/ld/eagle.flash.2m.ld index 00b11a0734..9e0577c6f0 100644 --- a/tools/sdk/ld/eagle.flash.2m.ld +++ b/tools/sdk/ld/eagle.flash.2m.ld @@ -1,10 +1,11 @@ /* Flash Split for 2M chips */ /* sketch @0x40200000 (~1019KB) (1044464B) */ -/* empty @0x402FEFF0 (~1008KB) (1032208B) */ -/* spiffs @0x403FB000 (~0KB) (0B) */ -/* eeprom @0x403FB000 (4KB) */ -/* rfcal @0x403FC000 (4KB) */ -/* wifi @0x403FD000 (12KB) */ +/* empty @0x402FEFF0 (~1020KB) (1044496B) */ +/* otacmds @0x403FE000 (8KB) */ +/* spiffs @0x403FB000 (~0KB) (0B) */ +/* eeprom @0x403FB000 (4KB) */ +/* rfcal @0x403FC000 (4KB) */ +/* wifi @0x403FD000 (12KB) */ MEMORY { @@ -18,5 +19,7 @@ PROVIDE ( _FS_start = 0x403FB000 ); PROVIDE ( _FS_end = 0x403FB000 ); PROVIDE ( _FS_page = 0x0 ); PROVIDE ( _FS_block = 0x0 ); +PROVIDE ( _BOOTLOADER_DATA = 0x001FE000 ); +PROVIDE ( _SKETCH_AREA_end = _FS_start ); INCLUDE "local.eagle.app.v6.common.ld" diff --git a/tools/sdk/ld/eagle.flash.2m128.ld b/tools/sdk/ld/eagle.flash.2m128.ld index 1e96769b9a..bc9bb97a88 100644 --- a/tools/sdk/ld/eagle.flash.2m128.ld +++ b/tools/sdk/ld/eagle.flash.2m128.ld @@ -1,10 +1,11 @@ /* Flash Split for 2M chips */ /* sketch @0x40200000 (~1019KB) (1044464B) */ -/* empty @0x402FEFF0 (~900KB) (921616B) */ -/* spiffs @0x403E0000 (~108KB) (110592B) */ -/* eeprom @0x403FB000 (4KB) */ -/* rfcal @0x403FC000 (4KB) */ -/* wifi @0x403FD000 (12KB) */ +/* empty @0x402FEFF0 (~892KB) (913424B) */ +/* otacmds @0x403DE000 (8KB) */ +/* spiffs @0x403E0000 (~108KB) (110592B) */ +/* eeprom @0x403FB000 (4KB) */ +/* rfcal @0x403FC000 (4KB) */ +/* wifi @0x403FD000 (12KB) */ MEMORY { @@ -18,5 +19,7 @@ PROVIDE ( _FS_start = 0x403E0000 ); PROVIDE ( _FS_end = 0x403FB000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x1000 ); +PROVIDE ( _BOOTLOADER_DATA = 0x001DE000 ); +PROVIDE ( _SKETCH_AREA_end = _FS_start ); INCLUDE "local.eagle.app.v6.common.ld" diff --git a/tools/sdk/ld/eagle.flash.2m1m.ld b/tools/sdk/ld/eagle.flash.2m1m.ld index 21195281ec..095b4257e5 100644 --- a/tools/sdk/ld/eagle.flash.2m1m.ld +++ b/tools/sdk/ld/eagle.flash.2m1m.ld @@ -1,10 +1,10 @@ /* Flash Split for 2M chips */ /* sketch @0x40200000 (~1019KB) (1044464B) */ -/* empty @0x402FEFF0 (~4KB) (4112B) */ -/* spiffs @0x40300000 (~1000KB) (1024000B) */ -/* eeprom @0x403FB000 (4KB) */ -/* rfcal @0x403FC000 (4KB) */ -/* wifi @0x403FD000 (12KB) */ +/* otacmds @0x402FE000 (8KB) */ +/* spiffs @0x40300000 (~1000KB) (1024000B) */ +/* eeprom @0x403FB000 (4KB) */ +/* rfcal @0x403FC000 (4KB) */ +/* wifi @0x403FD000 (12KB) */ MEMORY { @@ -18,5 +18,7 @@ PROVIDE ( _FS_start = 0x40300000 ); PROVIDE ( _FS_end = 0x403FA000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x2000 ); +PROVIDE ( _BOOTLOADER_DATA = 0x000FE000 ); +PROVIDE ( _SKETCH_AREA_end = _FS_start ); INCLUDE "local.eagle.app.v6.common.ld" diff --git a/tools/sdk/ld/eagle.flash.2m256.ld b/tools/sdk/ld/eagle.flash.2m256.ld index 4b59a1b15a..93ed0f959c 100644 --- a/tools/sdk/ld/eagle.flash.2m256.ld +++ b/tools/sdk/ld/eagle.flash.2m256.ld @@ -1,10 +1,11 @@ /* Flash Split for 2M chips */ /* sketch @0x40200000 (~1019KB) (1044464B) */ -/* empty @0x402FEFF0 (~772KB) (790544B) */ -/* spiffs @0x403C0000 (~236KB) (241664B) */ -/* eeprom @0x403FB000 (4KB) */ -/* rfcal @0x403FC000 (4KB) */ -/* wifi @0x403FD000 (12KB) */ +/* empty @0x402FEFF0 (~764KB) (782352B) */ +/* otacmds @0x403BE000 (8KB) */ +/* spiffs @0x403C0000 (~236KB) (241664B) */ +/* eeprom @0x403FB000 (4KB) */ +/* rfcal @0x403FC000 (4KB) */ +/* wifi @0x403FD000 (12KB) */ MEMORY { @@ -18,5 +19,7 @@ PROVIDE ( _FS_start = 0x403C0000 ); PROVIDE ( _FS_end = 0x403FB000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x1000 ); +PROVIDE ( _BOOTLOADER_DATA = 0x001BE000 ); +PROVIDE ( _SKETCH_AREA_end = _FS_start ); INCLUDE "local.eagle.app.v6.common.ld" diff --git a/tools/sdk/ld/eagle.flash.2m512.ld b/tools/sdk/ld/eagle.flash.2m512.ld index a6015dd2da..2ef05c11ae 100644 --- a/tools/sdk/ld/eagle.flash.2m512.ld +++ b/tools/sdk/ld/eagle.flash.2m512.ld @@ -1,10 +1,11 @@ /* Flash Split for 2M chips */ /* sketch @0x40200000 (~1019KB) (1044464B) */ -/* empty @0x402FEFF0 (~516KB) (528400B) */ -/* spiffs @0x40380000 (~488KB) (499712B) */ -/* eeprom @0x403FB000 (4KB) */ -/* rfcal @0x403FC000 (4KB) */ -/* wifi @0x403FD000 (12KB) */ +/* empty @0x402FEFF0 (~508KB) (520208B) */ +/* otacmds @0x4037E000 (8KB) */ +/* spiffs @0x40380000 (~488KB) (499712B) */ +/* eeprom @0x403FB000 (4KB) */ +/* rfcal @0x403FC000 (4KB) */ +/* wifi @0x403FD000 (12KB) */ MEMORY { @@ -18,5 +19,7 @@ PROVIDE ( _FS_start = 0x40380000 ); PROVIDE ( _FS_end = 0x403FA000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x2000 ); +PROVIDE ( _BOOTLOADER_DATA = 0x0017E000 ); +PROVIDE ( _SKETCH_AREA_end = _FS_start ); INCLUDE "local.eagle.app.v6.common.ld" diff --git a/tools/sdk/ld/eagle.flash.4m.ld b/tools/sdk/ld/eagle.flash.4m.ld index f77c95ae1e..579ddbd76d 100644 --- a/tools/sdk/ld/eagle.flash.4m.ld +++ b/tools/sdk/ld/eagle.flash.4m.ld @@ -1,10 +1,11 @@ /* Flash Split for 4M chips */ /* sketch @0x40200000 (~1019KB) (1044464B) */ -/* empty @0x402FEFF0 (~3056KB) (3129360B) */ -/* spiffs @0x405FB000 (~0KB) (0B) */ -/* eeprom @0x405FB000 (4KB) */ -/* rfcal @0x405FC000 (4KB) */ -/* wifi @0x405FD000 (12KB) */ +/* empty @0x402FEFF0 (~3068KB) (3141648B) */ +/* otacmds @0x405FE000 (8KB) */ +/* spiffs @0x405FB000 (~0KB) (0B) */ +/* eeprom @0x405FB000 (4KB) */ +/* rfcal @0x405FC000 (4KB) */ +/* wifi @0x405FD000 (12KB) */ MEMORY { @@ -18,5 +19,7 @@ PROVIDE ( _FS_start = 0x405FB000 ); PROVIDE ( _FS_end = 0x405FB000 ); PROVIDE ( _FS_page = 0x0 ); PROVIDE ( _FS_block = 0x0 ); +PROVIDE ( _BOOTLOADER_DATA = 0x003FE000 ); +PROVIDE ( _SKETCH_AREA_end = _FS_start ); INCLUDE "local.eagle.app.v6.common.ld" diff --git a/tools/sdk/ld/eagle.flash.4m1m.ld b/tools/sdk/ld/eagle.flash.4m1m.ld index 4d295e3069..f020066925 100644 --- a/tools/sdk/ld/eagle.flash.4m1m.ld +++ b/tools/sdk/ld/eagle.flash.4m1m.ld @@ -1,10 +1,11 @@ /* Flash Split for 4M chips */ /* sketch @0x40200000 (~1019KB) (1044464B) */ -/* empty @0x402FEFF0 (~2052KB) (2101264B) */ -/* spiffs @0x40500000 (~1000KB) (1024000B) */ -/* eeprom @0x405FB000 (4KB) */ -/* rfcal @0x405FC000 (4KB) */ -/* wifi @0x405FD000 (12KB) */ +/* empty @0x402FEFF0 (~2044KB) (2093072B) */ +/* otacmds @0x404FE000 (8KB) */ +/* spiffs @0x40500000 (~1000KB) (1024000B) */ +/* eeprom @0x405FB000 (4KB) */ +/* rfcal @0x405FC000 (4KB) */ +/* wifi @0x405FD000 (12KB) */ MEMORY { @@ -18,5 +19,7 @@ PROVIDE ( _FS_start = 0x40500000 ); PROVIDE ( _FS_end = 0x405FA000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x2000 ); +PROVIDE ( _BOOTLOADER_DATA = 0x002FE000 ); +PROVIDE ( _SKETCH_AREA_end = _FS_start ); INCLUDE "local.eagle.app.v6.common.ld" diff --git a/tools/sdk/ld/eagle.flash.4m2m.ld b/tools/sdk/ld/eagle.flash.4m2m.ld index d7034237c8..f6397931af 100644 --- a/tools/sdk/ld/eagle.flash.4m2m.ld +++ b/tools/sdk/ld/eagle.flash.4m2m.ld @@ -1,10 +1,11 @@ /* Flash Split for 4M chips */ /* sketch @0x40200000 (~1019KB) (1044464B) */ -/* empty @0x402FEFF0 (~1028KB) (1052688B) */ -/* spiffs @0x40400000 (~2024KB) (2072576B) */ -/* eeprom @0x405FB000 (4KB) */ -/* rfcal @0x405FC000 (4KB) */ -/* wifi @0x405FD000 (12KB) */ +/* empty @0x402FEFF0 (~1020KB) (1044496B) */ +/* otacmds @0x403FE000 (8KB) */ +/* spiffs @0x40400000 (~2024KB) (2072576B) */ +/* eeprom @0x405FB000 (4KB) */ +/* rfcal @0x405FC000 (4KB) */ +/* wifi @0x405FD000 (12KB) */ MEMORY { @@ -18,5 +19,7 @@ PROVIDE ( _FS_start = 0x40400000 ); PROVIDE ( _FS_end = 0x405FA000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x2000 ); +PROVIDE ( _BOOTLOADER_DATA = 0x001FE000 ); +PROVIDE ( _SKETCH_AREA_end = _FS_start ); INCLUDE "local.eagle.app.v6.common.ld" diff --git a/tools/sdk/ld/eagle.flash.4m3m.ld b/tools/sdk/ld/eagle.flash.4m3m.ld index 604ed2fa54..9d1d6f91c0 100644 --- a/tools/sdk/ld/eagle.flash.4m3m.ld +++ b/tools/sdk/ld/eagle.flash.4m3m.ld @@ -1,10 +1,10 @@ /* Flash Split for 4M chips */ /* sketch @0x40200000 (~1019KB) (1044464B) */ -/* empty @0x402FEFF0 (~4KB) (4112B) */ -/* spiffs @0x40300000 (~3048KB) (3121152B) */ -/* eeprom @0x405FB000 (4KB) */ -/* rfcal @0x405FC000 (4KB) */ -/* wifi @0x405FD000 (12KB) */ +/* otacmds @0x402FE000 (8KB) */ +/* spiffs @0x40300000 (~3048KB) (3121152B) */ +/* eeprom @0x405FB000 (4KB) */ +/* rfcal @0x405FC000 (4KB) */ +/* wifi @0x405FD000 (12KB) */ MEMORY { @@ -18,5 +18,7 @@ PROVIDE ( _FS_start = 0x40300000 ); PROVIDE ( _FS_end = 0x405FA000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x2000 ); +PROVIDE ( _BOOTLOADER_DATA = 0x000FE000 ); +PROVIDE ( _SKETCH_AREA_end = _FS_start ); INCLUDE "local.eagle.app.v6.common.ld" diff --git a/tools/sdk/ld/eagle.flash.512k.ld b/tools/sdk/ld/eagle.flash.512k.ld index 4f421ab8eb..74dee7185d 100644 --- a/tools/sdk/ld/eagle.flash.512k.ld +++ b/tools/sdk/ld/eagle.flash.512k.ld @@ -1,22 +1,25 @@ /* Flash Split for 512K chips */ -/* sketch @0x40200000 (~487KB) (499696B) */ -/* empty @0x40279FF0 (~4KB) (4112B) */ -/* spiffs @0x4027B000 (~0KB) (0B) */ -/* eeprom @0x4027B000 (4KB) */ -/* rfcal @0x4027C000 (4KB) */ -/* wifi @0x4027D000 (12KB) */ +/* sketch @0x40200000 (~479KB) (491504B) */ +/* empty @0x40277FF0 (~4KB) (4112B) */ +/* otacmds @0x40279000 (8KB) */ +/* spiffs @0x4027B000 (~0KB) (0B) */ +/* eeprom @0x4027B000 (4KB) */ +/* rfcal @0x4027C000 (4KB) */ +/* wifi @0x4027D000 (12KB) */ MEMORY { dport0_0_seg : org = 0x3FF00000, len = 0x10 dram0_0_seg : org = 0x3FFE8000, len = 0x14000 iram1_0_seg : org = 0x40100000, len = 0x8000 - irom0_0_seg : org = 0x40201010, len = 0x79ff0 + irom0_0_seg : org = 0x40201010, len = 0x77ff0 } PROVIDE ( _FS_start = 0x4027B000 ); PROVIDE ( _FS_end = 0x4027B000 ); PROVIDE ( _FS_page = 0x0 ); PROVIDE ( _FS_block = 0x0 ); +PROVIDE ( _BOOTLOADER_DATA = 0x00079000 ); +PROVIDE ( _SKETCH_AREA_end = _FS_start ); INCLUDE "local.eagle.app.v6.common.ld" diff --git a/tools/sdk/ld/eagle.flash.512k128.ld b/tools/sdk/ld/eagle.flash.512k128.ld index 7a3c573af0..754a6b7a36 100644 --- a/tools/sdk/ld/eagle.flash.512k128.ld +++ b/tools/sdk/ld/eagle.flash.512k128.ld @@ -1,22 +1,25 @@ /* Flash Split for 512K chips */ -/* sketch @0x40200000 (~359KB) (368624B) */ -/* empty @0x40259FF0 (~4KB) (4112B) */ -/* spiffs @0x4025B000 (~128KB) (131072B) */ -/* eeprom @0x4027B000 (4KB) */ -/* rfcal @0x4027C000 (4KB) */ -/* wifi @0x4027D000 (12KB) */ +/* sketch @0x40200000 (~351KB) (360432B) */ +/* empty @0x40257FF0 (~4KB) (4112B) */ +/* otacmds @0x40259000 (8KB) */ +/* spiffs @0x4025B000 (~128KB) (131072B) */ +/* eeprom @0x4027B000 (4KB) */ +/* rfcal @0x4027C000 (4KB) */ +/* wifi @0x4027D000 (12KB) */ MEMORY { dport0_0_seg : org = 0x3FF00000, len = 0x10 dram0_0_seg : org = 0x3FFE8000, len = 0x14000 iram1_0_seg : org = 0x40100000, len = 0x8000 - irom0_0_seg : org = 0x40201010, len = 0x59ff0 + irom0_0_seg : org = 0x40201010, len = 0x57ff0 } PROVIDE ( _FS_start = 0x4025B000 ); PROVIDE ( _FS_end = 0x4027B000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x1000 ); +PROVIDE ( _BOOTLOADER_DATA = 0x00059000 ); +PROVIDE ( _SKETCH_AREA_end = _FS_start ); INCLUDE "local.eagle.app.v6.common.ld" diff --git a/tools/sdk/ld/eagle.flash.512k32.ld b/tools/sdk/ld/eagle.flash.512k32.ld index 1334b8d8e4..40ee1cb56f 100644 --- a/tools/sdk/ld/eagle.flash.512k32.ld +++ b/tools/sdk/ld/eagle.flash.512k32.ld @@ -1,22 +1,25 @@ /* Flash Split for 512K chips */ -/* sketch @0x40200000 (~455KB) (466928B) */ -/* empty @0x40271FF0 (~4KB) (4112B) */ -/* spiffs @0x40273000 (~32KB) (32768B) */ -/* eeprom @0x4027B000 (4KB) */ -/* rfcal @0x4027C000 (4KB) */ -/* wifi @0x4027D000 (12KB) */ +/* sketch @0x40200000 (~447KB) (458736B) */ +/* empty @0x4026FFF0 (~4KB) (4112B) */ +/* otacmds @0x40271000 (8KB) */ +/* spiffs @0x40273000 (~32KB) (32768B) */ +/* eeprom @0x4027B000 (4KB) */ +/* rfcal @0x4027C000 (4KB) */ +/* wifi @0x4027D000 (12KB) */ MEMORY { dport0_0_seg : org = 0x3FF00000, len = 0x10 dram0_0_seg : org = 0x3FFE8000, len = 0x14000 iram1_0_seg : org = 0x40100000, len = 0x8000 - irom0_0_seg : org = 0x40201010, len = 0x71ff0 + irom0_0_seg : org = 0x40201010, len = 0x6fff0 } PROVIDE ( _FS_start = 0x40273000 ); PROVIDE ( _FS_end = 0x4027B000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x1000 ); +PROVIDE ( _BOOTLOADER_DATA = 0x00071000 ); +PROVIDE ( _SKETCH_AREA_end = _FS_start ); INCLUDE "local.eagle.app.v6.common.ld" diff --git a/tools/sdk/ld/eagle.flash.512k64.ld b/tools/sdk/ld/eagle.flash.512k64.ld index fdea4da8e3..8cc0fb67ac 100644 --- a/tools/sdk/ld/eagle.flash.512k64.ld +++ b/tools/sdk/ld/eagle.flash.512k64.ld @@ -1,22 +1,25 @@ /* Flash Split for 512K chips */ -/* sketch @0x40200000 (~423KB) (434160B) */ -/* empty @0x40269FF0 (~4KB) (4112B) */ -/* spiffs @0x4026B000 (~64KB) (65536B) */ -/* eeprom @0x4027B000 (4KB) */ -/* rfcal @0x4027C000 (4KB) */ -/* wifi @0x4027D000 (12KB) */ +/* sketch @0x40200000 (~415KB) (425968B) */ +/* empty @0x40267FF0 (~4KB) (4112B) */ +/* otacmds @0x40269000 (8KB) */ +/* spiffs @0x4026B000 (~64KB) (65536B) */ +/* eeprom @0x4027B000 (4KB) */ +/* rfcal @0x4027C000 (4KB) */ +/* wifi @0x4027D000 (12KB) */ MEMORY { dport0_0_seg : org = 0x3FF00000, len = 0x10 dram0_0_seg : org = 0x3FFE8000, len = 0x14000 iram1_0_seg : org = 0x40100000, len = 0x8000 - irom0_0_seg : org = 0x40201010, len = 0x69ff0 + irom0_0_seg : org = 0x40201010, len = 0x67ff0 } PROVIDE ( _FS_start = 0x4026B000 ); PROVIDE ( _FS_end = 0x4027B000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x1000 ); +PROVIDE ( _BOOTLOADER_DATA = 0x00069000 ); +PROVIDE ( _SKETCH_AREA_end = _FS_start ); INCLUDE "local.eagle.app.v6.common.ld" diff --git a/tools/sdk/ld/eagle.flash.8m6m.ld b/tools/sdk/ld/eagle.flash.8m6m.ld index 2b26716022..dfd7f700e3 100644 --- a/tools/sdk/ld/eagle.flash.8m6m.ld +++ b/tools/sdk/ld/eagle.flash.8m6m.ld @@ -1,10 +1,11 @@ /* Flash Split for 8M chips */ /* sketch @0x40200000 (~1019KB) (1044464B) */ -/* empty @0x402FEFF0 (~1028KB) (1052688B) */ -/* spiffs @0x40400000 (~6120KB) (6266880B) */ -/* eeprom @0x409FB000 (4KB) */ -/* rfcal @0x409FC000 (4KB) */ -/* wifi @0x409FD000 (12KB) */ +/* empty @0x402FEFF0 (~1020KB) (1044496B) */ +/* otacmds @0x403FE000 (8KB) */ +/* spiffs @0x40400000 (~6120KB) (6266880B) */ +/* eeprom @0x409FB000 (4KB) */ +/* rfcal @0x409FC000 (4KB) */ +/* wifi @0x409FD000 (12KB) */ MEMORY { @@ -18,5 +19,7 @@ PROVIDE ( _FS_start = 0x40400000 ); PROVIDE ( _FS_end = 0x409FA000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x2000 ); +PROVIDE ( _BOOTLOADER_DATA = 0x001FE000 ); +PROVIDE ( _SKETCH_AREA_end = _FS_start ); INCLUDE "local.eagle.app.v6.common.ld" diff --git a/tools/sdk/ld/eagle.flash.8m7m.ld b/tools/sdk/ld/eagle.flash.8m7m.ld index 2dae7ac7f6..f2f20636f4 100644 --- a/tools/sdk/ld/eagle.flash.8m7m.ld +++ b/tools/sdk/ld/eagle.flash.8m7m.ld @@ -1,10 +1,10 @@ /* Flash Split for 8M chips */ /* sketch @0x40200000 (~1019KB) (1044464B) */ -/* empty @0x402FEFF0 (~4KB) (4112B) */ -/* spiffs @0x40300000 (~7144KB) (7315456B) */ -/* eeprom @0x409FB000 (4KB) */ -/* rfcal @0x409FC000 (4KB) */ -/* wifi @0x409FD000 (12KB) */ +/* otacmds @0x402FE000 (8KB) */ +/* spiffs @0x40300000 (~7144KB) (7315456B) */ +/* eeprom @0x409FB000 (4KB) */ +/* rfcal @0x409FC000 (4KB) */ +/* wifi @0x409FD000 (12KB) */ MEMORY { @@ -18,5 +18,7 @@ PROVIDE ( _FS_start = 0x40300000 ); PROVIDE ( _FS_end = 0x409FA000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x2000 ); +PROVIDE ( _BOOTLOADER_DATA = 0x000FE000 ); +PROVIDE ( _SKETCH_AREA_end = _FS_start ); INCLUDE "local.eagle.app.v6.common.ld" From f3d01a29d77627fff6dd8b217fc799f8d9ccaa0c Mon Sep 17 00:00:00 2001 From: Julian Davison Date: Fri, 20 Sep 2019 16:58:27 +1200 Subject: [PATCH 06/17] Cleaned up some things that had leaked in from testing --- cores/esp8266/umm_malloc/umm_malloc_cfg.h | 2 -- libraries/ESP8266WiFi/src/WiFiClientSecureAxTLS.cpp | 2 -- programmers.txt | 4 ---- 3 files changed, 8 deletions(-) diff --git a/cores/esp8266/umm_malloc/umm_malloc_cfg.h b/cores/esp8266/umm_malloc/umm_malloc_cfg.h index b01d07c89d..39d5897cc9 100644 --- a/cores/esp8266/umm_malloc/umm_malloc_cfg.h +++ b/cores/esp8266/umm_malloc/umm_malloc_cfg.h @@ -187,8 +187,6 @@ extern char _heap_start[]; * callback is called: `UMM_HEAP_CORRUPTION_CB()` */ -#define DEBUG_ESP_PORT Serial - #if defined(DEBUG_ESP_PORT) || defined(DEBUG_ESP_CORE) #define UMM_POISON #endif diff --git a/libraries/ESP8266WiFi/src/WiFiClientSecureAxTLS.cpp b/libraries/ESP8266WiFi/src/WiFiClientSecureAxTLS.cpp index 353ccd2e0d..62b7f0ab8c 100644 --- a/libraries/ESP8266WiFi/src/WiFiClientSecureAxTLS.cpp +++ b/libraries/ESP8266WiFi/src/WiFiClientSecureAxTLS.cpp @@ -27,8 +27,6 @@ #include "WiFiClientSecure.h" #include "WiFiClient.h" -#define DEBUG_ESP_SSL - #ifdef DEBUG_ESP_SSL #define DEBUG_SSL #endif diff --git a/programmers.txt b/programmers.txt index 17e0b5f0a0..e69de29bb2 100644 --- a/programmers.txt +++ b/programmers.txt @@ -1,4 +0,0 @@ -strobeloader.name=StrobeLoader -#strobeloader.protocol=tcp -strobeloader.program.tool=sl -strobeloader.program.extra_params= From 8f1a74c1724339af5389991b48f31d320e802b1c Mon Sep 17 00:00:00 2001 From: Julian Davison Date: Sat, 21 Sep 2019 22:45:42 +1200 Subject: [PATCH 07/17] Added constant `APP_START_OFFSET` which was missed out of the transfer --- bootloaders/eboot/eboot.elf | Bin 10376 -> 21284 bytes bootloaders/eboot/flash.h | 2 ++ 2 files changed, 2 insertions(+) diff --git a/bootloaders/eboot/eboot.elf b/bootloaders/eboot/eboot.elf index da0f8452785eb278f8a32f0ed05a0b8a67627195..b251eaf1658df87e3689268002d2ef3ee9901632 100755 GIT binary patch literal 21284 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 O-B+c+K`ztK$#4kBvadj)=nng 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 OnLKB!aH(`A>;Df|*7v6X diff --git a/bootloaders/eboot/flash.h b/bootloaders/eboot/flash.h index 38c528869a..b6613e393d 100644 --- a/bootloaders/eboot/flash.h +++ b/bootloaders/eboot/flash.h @@ -15,6 +15,8 @@ */ #include +#define APP_START_OFFSET 0x1000 + int SPIEraseBlock(uint32_t block); int SPIEraseSector(uint32_t sector); int SPIRead(uint32_t addr, void *dest, size_t size); From 32f153961ec3d32dd84e6e538e5ecde8692df916 Mon Sep 17 00:00:00 2001 From: Julian Davison Date: Tue, 24 Sep 2019 17:52:41 +1200 Subject: [PATCH 08/17] Add includes --- cores/esp8266/core_esp8266_eboot_command.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/cores/esp8266/core_esp8266_eboot_command.cpp b/cores/esp8266/core_esp8266_eboot_command.cpp index 178ba4018a..b6205ca1be 100644 --- a/cores/esp8266/core_esp8266_eboot_command.cpp +++ b/cores/esp8266/core_esp8266_eboot_command.cpp @@ -24,7 +24,12 @@ #include "coredecls.h" #include #include "eboot_command.h" - +#include "flash_utils.h" +#include "c_types.h" +#include "ets_sys.h" +#include "os_type.h" +#include "osapi.h" +#include "spi_flash.h" extern "C" { From 923b2d7951a7dcace69c0ce0a6939e9797591c8e Mon Sep 17 00:00:00 2001 From: Julian Davison Date: Wed, 25 Sep 2019 17:48:29 +1200 Subject: [PATCH 09/17] CI Cleanup --- cores/esp8266/core_esp8266_eboot_command.cpp | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/cores/esp8266/core_esp8266_eboot_command.cpp b/cores/esp8266/core_esp8266_eboot_command.cpp index b6205ca1be..44b2a837ce 100644 --- a/cores/esp8266/core_esp8266_eboot_command.cpp +++ b/cores/esp8266/core_esp8266_eboot_command.cpp @@ -60,7 +60,7 @@ uint32_t eboot_read_flash_index(eboot_index_t *eboot_index) eboot_flash_command_t *commandAddress(void) { eboot_index_t eboot_index; const uint32_t addr = 0 + APP_START_OFFSET + sizeof(image_header_t) + sizeof(section_header_t); - ets_printf("commandAddress: %p\n", addr); + ets_printf("commandAddress: %p\n", (void) addr); if (spi_flash_read(addr, (uint32_t *)&eboot_index, sizeof(eboot_index)) != 0) { ets_printf("failed to read SPI\n"); return NULL; @@ -82,8 +82,7 @@ bool readBootCommand(int cmd, eboot_flash_command_t *dst) { if (cmd >= EBOOT_COMMAND_MAX_COUNT) { return 0; } - uint32_t uint = (uint32_t) cmds; - uint32_t addr = (uint32_t)cmds - 0x40200000; + uint32_t addr = (uint32_t) cmds - 0x40200000; addr += cmd * sizeof(*dst); ets_printf("Reading command %d from flash @ %p\n", cmd, addr); if (spi_flash_read(addr, (uint32_t *)dst, sizeof(*dst))) { @@ -98,19 +97,19 @@ bool writeBootCommand(int cmd, eboot_flash_command_t *dst) { if (cmd >= EBOOT_COMMAND_MAX_COUNT) { return 0; } - uint32_t uint = (uint32_t) cmds; uint32_t addr = (uint32_t)cmds - 0x40200000; addr += cmd * sizeof(*dst); - ets_printf("Writing command %d to flash @ %p\n", cmd, addr); + ets_printf("Writing command %d to flash @ %p\n", cmd, (void) addr); if (spi_flash_write(addr, (uint32_t *)dst, sizeof(*dst))) { return 0; } + return 1; } bool eraseBootCommandBlock(void) { eboot_flash_command_t *cmds = commandAddress(); uint32_t addr = (uint32_t)cmds - 0x40200000; - ets_printf("Erasing command block at %p\n", addr); + ets_printf("Erasing command block at %p\n", (void) addr); if (spi_flash_erase_sector(addr / FLASH_SECTOR_SIZE)) { return 0; } @@ -122,7 +121,7 @@ uint32_t eboot_command_read_from_flash(struct eboot_command *cmd) eboot_index_t eboot_index; eboot_flash_command_t *flash_command; uint32_t i; - const uint32_t dw_count = sizeof(struct eboot_command) / sizeof(uint32_t); +// const uint32_t dw_count = sizeof(struct eboot_command) / sizeof(uint32_t); if (!eboot_read_flash_index(&eboot_index)) { return 0; @@ -199,7 +198,7 @@ int eboot_command_read_from_rtc(struct eboot_command *cmd) return 0; } -int eboot_command_write_to_rtc(struct eboot_command *cmd) +void eboot_command_write_to_rtc(struct eboot_command *cmd) { const uint32_t dw_count = sizeof(struct eboot_command) / sizeof(uint32_t); const uint32_t* src = (const uint32_t *) cmd; @@ -225,7 +224,7 @@ int eboot_command_read(struct eboot_command* cmd) } uint32_t crc32 = eboot_command_calculate_crc32(cmd); - if (cmd->magic & EBOOT_MAGIC_MASK != EBOOT_MAGIC || + if ((cmd->magic & EBOOT_MAGIC_MASK) != EBOOT_MAGIC || cmd->crc32 != crc32) { return 1; } From 8205f1708813f79ae7eadc419b780da92efdf08d Mon Sep 17 00:00:00 2001 From: Julian Davison Date: Wed, 25 Sep 2019 17:55:51 +1200 Subject: [PATCH 10/17] CI Cleanups --- cores/esp8266/core_esp8266_eboot_command.cpp | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/cores/esp8266/core_esp8266_eboot_command.cpp b/cores/esp8266/core_esp8266_eboot_command.cpp index 44b2a837ce..10af17343a 100644 --- a/cores/esp8266/core_esp8266_eboot_command.cpp +++ b/cores/esp8266/core_esp8266_eboot_command.cpp @@ -60,7 +60,7 @@ uint32_t eboot_read_flash_index(eboot_index_t *eboot_index) eboot_flash_command_t *commandAddress(void) { eboot_index_t eboot_index; const uint32_t addr = 0 + APP_START_OFFSET + sizeof(image_header_t) + sizeof(section_header_t); - ets_printf("commandAddress: %p\n", (void) addr); + ets_printf("commandAddress: %p\n", (void *) addr); if (spi_flash_read(addr, (uint32_t *)&eboot_index, sizeof(eboot_index)) != 0) { ets_printf("failed to read SPI\n"); return NULL; @@ -78,13 +78,13 @@ bool readBootCommand(int cmd, eboot_flash_command_t *dst) { if (cmds == 0) { return 0; } - ets_printf("Reading command %d from flash: %p\n", cmd, cmds); + ets_printf("Reading command %d from flash: %p\n", cmd, (void *) cmds); if (cmd >= EBOOT_COMMAND_MAX_COUNT) { return 0; } uint32_t addr = (uint32_t) cmds - 0x40200000; addr += cmd * sizeof(*dst); - ets_printf("Reading command %d from flash @ %p\n", cmd, addr); + ets_printf("Reading command %d from flash @ %p\n", cmd, (void *) addr); if (spi_flash_read(addr, (uint32_t *)dst, sizeof(*dst))) { return 0; } @@ -93,13 +93,13 @@ bool readBootCommand(int cmd, eboot_flash_command_t *dst) { bool writeBootCommand(int cmd, eboot_flash_command_t *dst) { eboot_flash_command_t *cmds = commandAddress(); - ets_printf("!Writing command %d to flash: %p\n", cmd, cmds); + ets_printf("!Writing command %d to flash: %p\n", cmd, (void *) cmds); if (cmd >= EBOOT_COMMAND_MAX_COUNT) { return 0; } uint32_t addr = (uint32_t)cmds - 0x40200000; addr += cmd * sizeof(*dst); - ets_printf("Writing command %d to flash @ %p\n", cmd, (void) addr); + ets_printf("Writing command %d to flash @ %p\n", cmd, (void *) addr); if (spi_flash_write(addr, (uint32_t *)dst, sizeof(*dst))) { return 0; } @@ -109,7 +109,7 @@ bool writeBootCommand(int cmd, eboot_flash_command_t *dst) { bool eraseBootCommandBlock(void) { eboot_flash_command_t *cmds = commandAddress(); uint32_t addr = (uint32_t)cmds - 0x40200000; - ets_printf("Erasing command block at %p\n", (void) addr); + ets_printf("Erasing command block at %p\n", (void 8) addr); if (spi_flash_erase_sector(addr / FLASH_SECTOR_SIZE)) { return 0; } @@ -131,7 +131,7 @@ uint32_t eboot_command_read_from_flash(struct eboot_command *cmd) if (((flash_command->flags & EBOOT_CMD_FLAG_SLOT_FREE) == 0) && ((flash_command->flags & EBOOT_CMD_FLAG_PENDING) == EBOOT_CMD_FLAG_PENDING)) { // This is a valid command waiting to be actioned, or should be. The CRC check will determine if it's actually valid - uint32_t* dst = (uint32_t *) cmd; + // uint32_t* dst = (uint32_t *) cmd; // uint32_t* src = (uint32_t *) flash_command->cmd; // for (uint32_t i = 0; i < dw_count; ++i) { // dst[i] = src[i]; @@ -149,7 +149,7 @@ uint32_t eboot_command_write_to_flash(struct eboot_command *cmd) uint32_t i, *dst, *src = (uint32_t *)cmd; int32_t target_command_slot = -1; const uint32_t dw_count = sizeof(struct eboot_command) / sizeof(uint32_t); - ets_printf("Writing command to flash: %p\n", cmd); + ets_printf("Writing command to flash: %p\n", (void *) cmd); for (i = 0; i < EBOOT_COMMAND_MAX_COUNT; i++) { ets_printf("Read bootCommand %d, flags: %x\n", i, flash_command.flags); @@ -180,7 +180,7 @@ uint32_t eboot_command_write_to_flash(struct eboot_command *cmd) dst[j] = src[j]; } flash_command.flags &= ~EBOOT_CMD_FLAG_SLOT_FREE; - ets_printf("Writing command %d to flash: %p\n", target_command_slot, cmd); + ets_printf("Writing command %d to flash: %p\n", target_command_slot, (void *) cmd); writeBootCommand(target_command_slot, &flash_command); return 1; } @@ -237,7 +237,7 @@ void eboot_command_write(struct eboot_command* cmd) uint32_t saved = 0; cmd->magic = EBOOT_MAGIC; cmd->crc32 = eboot_command_calculate_crc32(cmd); - ets_printf("Writing command: %p\n", cmd); + ets_printf("Writing command: %p\n", (void *) cmd); #if defined (EBOOT_ENABLE_FLASH_STORAGE) saved = eboot_command_write_to_flash(cmd); #endif // EBOOT_ENABLE_FLASH_STORAGE From 16127c22e7fad761b29ebc15b50e340f6b5d570e Mon Sep 17 00:00:00 2001 From: Julian Davison Date: Wed, 25 Sep 2019 21:13:50 +1200 Subject: [PATCH 11/17] CI Cleanups --- cores/esp8266/core_esp8266_eboot_command.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cores/esp8266/core_esp8266_eboot_command.cpp b/cores/esp8266/core_esp8266_eboot_command.cpp index 10af17343a..e5f3b64386 100644 --- a/cores/esp8266/core_esp8266_eboot_command.cpp +++ b/cores/esp8266/core_esp8266_eboot_command.cpp @@ -109,14 +109,14 @@ bool writeBootCommand(int cmd, eboot_flash_command_t *dst) { bool eraseBootCommandBlock(void) { eboot_flash_command_t *cmds = commandAddress(); uint32_t addr = (uint32_t)cmds - 0x40200000; - ets_printf("Erasing command block at %p\n", (void 8) addr); + ets_printf("Erasing command block at %p\n", (void *) addr); if (spi_flash_erase_sector(addr / FLASH_SECTOR_SIZE)) { return 0; } return 1; } -uint32_t eboot_command_read_from_flash(struct eboot_command *cmd) +uint32_t eboot_command_read_from_flash(void) { eboot_index_t eboot_index; eboot_flash_command_t *flash_command; From a93115076fc5e4da45eb4dcd02e2a94b6f510d52 Mon Sep 17 00:00:00 2001 From: Julian Davison Date: Sun, 29 Sep 2019 16:43:38 +1300 Subject: [PATCH 12/17] Regenerated the files --- boards.txt | 6 +----- tools/sdk/ld/eagle.flash.16m14m.ld | 3 --- tools/sdk/ld/eagle.flash.16m15m.ld | 3 --- tools/sdk/ld/eagle.flash.1m.ld | 3 --- tools/sdk/ld/eagle.flash.1m128.ld | 3 --- tools/sdk/ld/eagle.flash.1m144.ld | 3 --- tools/sdk/ld/eagle.flash.1m160.ld | 3 --- tools/sdk/ld/eagle.flash.1m192.ld | 3 --- tools/sdk/ld/eagle.flash.1m256.ld | 3 --- tools/sdk/ld/eagle.flash.1m512.ld | 3 --- tools/sdk/ld/eagle.flash.1m64.ld | 3 --- tools/sdk/ld/eagle.flash.2m.ld | 3 --- tools/sdk/ld/eagle.flash.2m128.ld | 3 --- tools/sdk/ld/eagle.flash.2m1m.ld | 3 --- tools/sdk/ld/eagle.flash.2m256.ld | 3 --- tools/sdk/ld/eagle.flash.2m512.ld | 3 --- tools/sdk/ld/eagle.flash.4m.ld | 3 --- tools/sdk/ld/eagle.flash.4m1m.ld | 3 --- tools/sdk/ld/eagle.flash.4m2m.ld | 3 --- tools/sdk/ld/eagle.flash.4m3m.ld | 3 --- tools/sdk/ld/eagle.flash.512k.ld | 3 --- tools/sdk/ld/eagle.flash.512k128.ld | 3 --- tools/sdk/ld/eagle.flash.512k32.ld | 3 --- tools/sdk/ld/eagle.flash.512k64.ld | 3 --- tools/sdk/ld/eagle.flash.8m6m.ld | 3 --- tools/sdk/ld/eagle.flash.8m7m.ld | 3 --- 26 files changed, 1 insertion(+), 80 deletions(-) diff --git a/boards.txt b/boards.txt index d11e675530..1b9728bf76 100644 --- a/boards.txt +++ b/boards.txt @@ -4762,15 +4762,11 @@ wifinfo.menu.FlashFreq.40=40MHz wifinfo.menu.FlashFreq.40.build.flash_freq=40 wifinfo.menu.FlashFreq.80=80MHz wifinfo.menu.FlashFreq.80.build.flash_freq=80 -<<<<<<< HEAD -wifinfo.menu.eesz.1M64=1MB (FS:64KB OTA:~466KB) -======= wifinfo.menu.FlashFreq.20=20MHz wifinfo.menu.FlashFreq.20.build.flash_freq=20 wifinfo.menu.FlashFreq.26=26MHz wifinfo.menu.FlashFreq.26.build.flash_freq=26 -wifinfo.menu.eesz.1M64=1MB (FS:64KB OTA:~470KB) ->>>>>>> upstream/master +wifinfo.menu.eesz.1M64=1MB (FS:64KB OTA:~466KB) wifinfo.menu.eesz.1M64.build.flash_size=1M wifinfo.menu.eesz.1M64.build.flash_size_bytes=0x100000 wifinfo.menu.eesz.1M64.build.flash_ld=eagle.flash.1m64.ld diff --git a/tools/sdk/ld/eagle.flash.16m14m.ld b/tools/sdk/ld/eagle.flash.16m14m.ld index f66f6a1da2..349dacfd23 100644 --- a/tools/sdk/ld/eagle.flash.16m14m.ld +++ b/tools/sdk/ld/eagle.flash.16m14m.ld @@ -19,16 +19,13 @@ PROVIDE ( _FS_start = 0x40400000 ); PROVIDE ( _FS_end = 0x411FA000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x2000 ); -<<<<<<< HEAD PROVIDE ( _BOOTLOADER_DATA = 0x001FE000 ); PROVIDE ( _SKETCH_AREA_end = _FS_start ); -======= PROVIDE ( _EEPROM_start = 0x411fb000 ); /* The following symbols are DEPRECATED and will be REMOVED in a future release */ PROVIDE ( _SPIFFS_start = 0x40400000 ); PROVIDE ( _SPIFFS_end = 0x411FA000 ); PROVIDE ( _SPIFFS_page = 0x100 ); PROVIDE ( _SPIFFS_block = 0x2000 ); ->>>>>>> upstream/master INCLUDE "local.eagle.app.v6.common.ld" diff --git a/tools/sdk/ld/eagle.flash.16m15m.ld b/tools/sdk/ld/eagle.flash.16m15m.ld index 379065a5a7..fd3caf7a19 100644 --- a/tools/sdk/ld/eagle.flash.16m15m.ld +++ b/tools/sdk/ld/eagle.flash.16m15m.ld @@ -18,16 +18,13 @@ PROVIDE ( _FS_start = 0x40300000 ); PROVIDE ( _FS_end = 0x411FA000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x2000 ); -<<<<<<< HEAD PROVIDE ( _BOOTLOADER_DATA = 0x000FE000 ); PROVIDE ( _SKETCH_AREA_end = _FS_start ); -======= PROVIDE ( _EEPROM_start = 0x411fb000 ); /* The following symbols are DEPRECATED and will be REMOVED in a future release */ PROVIDE ( _SPIFFS_start = 0x40300000 ); PROVIDE ( _SPIFFS_end = 0x411FA000 ); PROVIDE ( _SPIFFS_page = 0x100 ); PROVIDE ( _SPIFFS_block = 0x2000 ); ->>>>>>> upstream/master INCLUDE "local.eagle.app.v6.common.ld" diff --git a/tools/sdk/ld/eagle.flash.1m.ld b/tools/sdk/ld/eagle.flash.1m.ld index 4469daeedc..a24e863383 100644 --- a/tools/sdk/ld/eagle.flash.1m.ld +++ b/tools/sdk/ld/eagle.flash.1m.ld @@ -19,16 +19,13 @@ PROVIDE ( _FS_start = 0x402FB000 ); PROVIDE ( _FS_end = 0x402FB000 ); PROVIDE ( _FS_page = 0x0 ); PROVIDE ( _FS_block = 0x0 ); -<<<<<<< HEAD PROVIDE ( _BOOTLOADER_DATA = 0x000F9000 ); PROVIDE ( _SKETCH_AREA_end = _FS_start ); -======= PROVIDE ( _EEPROM_start = 0x402fb000 ); /* The following symbols are DEPRECATED and will be REMOVED in a future release */ PROVIDE ( _SPIFFS_start = 0x402FB000 ); PROVIDE ( _SPIFFS_end = 0x402FB000 ); PROVIDE ( _SPIFFS_page = 0x0 ); PROVIDE ( _SPIFFS_block = 0x0 ); ->>>>>>> upstream/master INCLUDE "local.eagle.app.v6.common.ld" diff --git a/tools/sdk/ld/eagle.flash.1m128.ld b/tools/sdk/ld/eagle.flash.1m128.ld index 343ed466a4..83883c912d 100644 --- a/tools/sdk/ld/eagle.flash.1m128.ld +++ b/tools/sdk/ld/eagle.flash.1m128.ld @@ -19,16 +19,13 @@ PROVIDE ( _FS_start = 0x402DB000 ); PROVIDE ( _FS_end = 0x402FB000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x1000 ); -<<<<<<< HEAD PROVIDE ( _BOOTLOADER_DATA = 0x000D9000 ); PROVIDE ( _SKETCH_AREA_end = _FS_start ); -======= PROVIDE ( _EEPROM_start = 0x402fb000 ); /* The following symbols are DEPRECATED and will be REMOVED in a future release */ PROVIDE ( _SPIFFS_start = 0x402DB000 ); PROVIDE ( _SPIFFS_end = 0x402FB000 ); PROVIDE ( _SPIFFS_page = 0x100 ); PROVIDE ( _SPIFFS_block = 0x1000 ); ->>>>>>> upstream/master INCLUDE "local.eagle.app.v6.common.ld" diff --git a/tools/sdk/ld/eagle.flash.1m144.ld b/tools/sdk/ld/eagle.flash.1m144.ld index d6c0ac5495..da0a96aa63 100644 --- a/tools/sdk/ld/eagle.flash.1m144.ld +++ b/tools/sdk/ld/eagle.flash.1m144.ld @@ -19,16 +19,13 @@ PROVIDE ( _FS_start = 0x402D7000 ); PROVIDE ( _FS_end = 0x402FB000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x1000 ); -<<<<<<< HEAD PROVIDE ( _BOOTLOADER_DATA = 0x000D5000 ); PROVIDE ( _SKETCH_AREA_end = _FS_start ); -======= PROVIDE ( _EEPROM_start = 0x402fb000 ); /* The following symbols are DEPRECATED and will be REMOVED in a future release */ PROVIDE ( _SPIFFS_start = 0x402D7000 ); PROVIDE ( _SPIFFS_end = 0x402FB000 ); PROVIDE ( _SPIFFS_page = 0x100 ); PROVIDE ( _SPIFFS_block = 0x1000 ); ->>>>>>> upstream/master INCLUDE "local.eagle.app.v6.common.ld" diff --git a/tools/sdk/ld/eagle.flash.1m160.ld b/tools/sdk/ld/eagle.flash.1m160.ld index a6e5184abe..daf201ffe2 100644 --- a/tools/sdk/ld/eagle.flash.1m160.ld +++ b/tools/sdk/ld/eagle.flash.1m160.ld @@ -19,16 +19,13 @@ PROVIDE ( _FS_start = 0x402D3000 ); PROVIDE ( _FS_end = 0x402FB000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x1000 ); -<<<<<<< HEAD PROVIDE ( _BOOTLOADER_DATA = 0x000D1000 ); PROVIDE ( _SKETCH_AREA_end = _FS_start ); -======= PROVIDE ( _EEPROM_start = 0x402fb000 ); /* The following symbols are DEPRECATED and will be REMOVED in a future release */ PROVIDE ( _SPIFFS_start = 0x402D3000 ); PROVIDE ( _SPIFFS_end = 0x402FB000 ); PROVIDE ( _SPIFFS_page = 0x100 ); PROVIDE ( _SPIFFS_block = 0x1000 ); ->>>>>>> upstream/master INCLUDE "local.eagle.app.v6.common.ld" diff --git a/tools/sdk/ld/eagle.flash.1m192.ld b/tools/sdk/ld/eagle.flash.1m192.ld index 52943af003..d49902b56e 100644 --- a/tools/sdk/ld/eagle.flash.1m192.ld +++ b/tools/sdk/ld/eagle.flash.1m192.ld @@ -19,16 +19,13 @@ PROVIDE ( _FS_start = 0x402CB000 ); PROVIDE ( _FS_end = 0x402FB000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x1000 ); -<<<<<<< HEAD PROVIDE ( _BOOTLOADER_DATA = 0x000C9000 ); PROVIDE ( _SKETCH_AREA_end = _FS_start ); -======= PROVIDE ( _EEPROM_start = 0x402fb000 ); /* The following symbols are DEPRECATED and will be REMOVED in a future release */ PROVIDE ( _SPIFFS_start = 0x402CB000 ); PROVIDE ( _SPIFFS_end = 0x402FB000 ); PROVIDE ( _SPIFFS_page = 0x100 ); PROVIDE ( _SPIFFS_block = 0x1000 ); ->>>>>>> upstream/master INCLUDE "local.eagle.app.v6.common.ld" diff --git a/tools/sdk/ld/eagle.flash.1m256.ld b/tools/sdk/ld/eagle.flash.1m256.ld index eeba19c558..5cfb28e254 100644 --- a/tools/sdk/ld/eagle.flash.1m256.ld +++ b/tools/sdk/ld/eagle.flash.1m256.ld @@ -19,16 +19,13 @@ PROVIDE ( _FS_start = 0x402BB000 ); PROVIDE ( _FS_end = 0x402FB000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x1000 ); -<<<<<<< HEAD PROVIDE ( _BOOTLOADER_DATA = 0x000B9000 ); PROVIDE ( _SKETCH_AREA_end = _FS_start ); -======= PROVIDE ( _EEPROM_start = 0x402fb000 ); /* The following symbols are DEPRECATED and will be REMOVED in a future release */ PROVIDE ( _SPIFFS_start = 0x402BB000 ); PROVIDE ( _SPIFFS_end = 0x402FB000 ); PROVIDE ( _SPIFFS_page = 0x100 ); PROVIDE ( _SPIFFS_block = 0x1000 ); ->>>>>>> upstream/master INCLUDE "local.eagle.app.v6.common.ld" diff --git a/tools/sdk/ld/eagle.flash.1m512.ld b/tools/sdk/ld/eagle.flash.1m512.ld index bb953bae89..880e20ef3a 100644 --- a/tools/sdk/ld/eagle.flash.1m512.ld +++ b/tools/sdk/ld/eagle.flash.1m512.ld @@ -19,16 +19,13 @@ PROVIDE ( _FS_start = 0x4027B000 ); PROVIDE ( _FS_end = 0x402FB000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x2000 ); -<<<<<<< HEAD PROVIDE ( _BOOTLOADER_DATA = 0x00079000 ); PROVIDE ( _SKETCH_AREA_end = _FS_start ); -======= PROVIDE ( _EEPROM_start = 0x402fb000 ); /* The following symbols are DEPRECATED and will be REMOVED in a future release */ PROVIDE ( _SPIFFS_start = 0x4027B000 ); PROVIDE ( _SPIFFS_end = 0x402FB000 ); PROVIDE ( _SPIFFS_page = 0x100 ); PROVIDE ( _SPIFFS_block = 0x2000 ); ->>>>>>> upstream/master INCLUDE "local.eagle.app.v6.common.ld" diff --git a/tools/sdk/ld/eagle.flash.1m64.ld b/tools/sdk/ld/eagle.flash.1m64.ld index 1505576593..dcd87dc048 100644 --- a/tools/sdk/ld/eagle.flash.1m64.ld +++ b/tools/sdk/ld/eagle.flash.1m64.ld @@ -19,16 +19,13 @@ PROVIDE ( _FS_start = 0x402EB000 ); PROVIDE ( _FS_end = 0x402FB000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x1000 ); -<<<<<<< HEAD PROVIDE ( _BOOTLOADER_DATA = 0x000E9000 ); PROVIDE ( _SKETCH_AREA_end = _FS_start ); -======= PROVIDE ( _EEPROM_start = 0x402fb000 ); /* The following symbols are DEPRECATED and will be REMOVED in a future release */ PROVIDE ( _SPIFFS_start = 0x402EB000 ); PROVIDE ( _SPIFFS_end = 0x402FB000 ); PROVIDE ( _SPIFFS_page = 0x100 ); PROVIDE ( _SPIFFS_block = 0x1000 ); ->>>>>>> upstream/master INCLUDE "local.eagle.app.v6.common.ld" diff --git a/tools/sdk/ld/eagle.flash.2m.ld b/tools/sdk/ld/eagle.flash.2m.ld index 2d651663df..4c713306fe 100644 --- a/tools/sdk/ld/eagle.flash.2m.ld +++ b/tools/sdk/ld/eagle.flash.2m.ld @@ -19,16 +19,13 @@ PROVIDE ( _FS_start = 0x403FB000 ); PROVIDE ( _FS_end = 0x403FB000 ); PROVIDE ( _FS_page = 0x0 ); PROVIDE ( _FS_block = 0x0 ); -<<<<<<< HEAD PROVIDE ( _BOOTLOADER_DATA = 0x001FE000 ); PROVIDE ( _SKETCH_AREA_end = _FS_start ); -======= PROVIDE ( _EEPROM_start = 0x403fb000 ); /* The following symbols are DEPRECATED and will be REMOVED in a future release */ PROVIDE ( _SPIFFS_start = 0x403FB000 ); PROVIDE ( _SPIFFS_end = 0x403FB000 ); PROVIDE ( _SPIFFS_page = 0x0 ); PROVIDE ( _SPIFFS_block = 0x0 ); ->>>>>>> upstream/master INCLUDE "local.eagle.app.v6.common.ld" diff --git a/tools/sdk/ld/eagle.flash.2m128.ld b/tools/sdk/ld/eagle.flash.2m128.ld index a587d63498..d8a0566bb6 100644 --- a/tools/sdk/ld/eagle.flash.2m128.ld +++ b/tools/sdk/ld/eagle.flash.2m128.ld @@ -19,16 +19,13 @@ PROVIDE ( _FS_start = 0x403E0000 ); PROVIDE ( _FS_end = 0x403FB000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x1000 ); -<<<<<<< HEAD PROVIDE ( _BOOTLOADER_DATA = 0x001DE000 ); PROVIDE ( _SKETCH_AREA_end = _FS_start ); -======= PROVIDE ( _EEPROM_start = 0x403fb000 ); /* The following symbols are DEPRECATED and will be REMOVED in a future release */ PROVIDE ( _SPIFFS_start = 0x403E0000 ); PROVIDE ( _SPIFFS_end = 0x403FB000 ); PROVIDE ( _SPIFFS_page = 0x100 ); PROVIDE ( _SPIFFS_block = 0x1000 ); ->>>>>>> upstream/master INCLUDE "local.eagle.app.v6.common.ld" diff --git a/tools/sdk/ld/eagle.flash.2m1m.ld b/tools/sdk/ld/eagle.flash.2m1m.ld index 896d64dce4..6ce00145c1 100644 --- a/tools/sdk/ld/eagle.flash.2m1m.ld +++ b/tools/sdk/ld/eagle.flash.2m1m.ld @@ -18,16 +18,13 @@ PROVIDE ( _FS_start = 0x40300000 ); PROVIDE ( _FS_end = 0x403FA000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x2000 ); -<<<<<<< HEAD PROVIDE ( _BOOTLOADER_DATA = 0x000FE000 ); PROVIDE ( _SKETCH_AREA_end = _FS_start ); -======= PROVIDE ( _EEPROM_start = 0x403fb000 ); /* The following symbols are DEPRECATED and will be REMOVED in a future release */ PROVIDE ( _SPIFFS_start = 0x40300000 ); PROVIDE ( _SPIFFS_end = 0x403FA000 ); PROVIDE ( _SPIFFS_page = 0x100 ); PROVIDE ( _SPIFFS_block = 0x2000 ); ->>>>>>> upstream/master INCLUDE "local.eagle.app.v6.common.ld" diff --git a/tools/sdk/ld/eagle.flash.2m256.ld b/tools/sdk/ld/eagle.flash.2m256.ld index 6c2500e2b2..fc96a01d3c 100644 --- a/tools/sdk/ld/eagle.flash.2m256.ld +++ b/tools/sdk/ld/eagle.flash.2m256.ld @@ -19,16 +19,13 @@ PROVIDE ( _FS_start = 0x403C0000 ); PROVIDE ( _FS_end = 0x403FB000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x1000 ); -<<<<<<< HEAD PROVIDE ( _BOOTLOADER_DATA = 0x001BE000 ); PROVIDE ( _SKETCH_AREA_end = _FS_start ); -======= PROVIDE ( _EEPROM_start = 0x403fb000 ); /* The following symbols are DEPRECATED and will be REMOVED in a future release */ PROVIDE ( _SPIFFS_start = 0x403C0000 ); PROVIDE ( _SPIFFS_end = 0x403FB000 ); PROVIDE ( _SPIFFS_page = 0x100 ); PROVIDE ( _SPIFFS_block = 0x1000 ); ->>>>>>> upstream/master INCLUDE "local.eagle.app.v6.common.ld" diff --git a/tools/sdk/ld/eagle.flash.2m512.ld b/tools/sdk/ld/eagle.flash.2m512.ld index f0fc177f9f..34ef18573f 100644 --- a/tools/sdk/ld/eagle.flash.2m512.ld +++ b/tools/sdk/ld/eagle.flash.2m512.ld @@ -19,16 +19,13 @@ PROVIDE ( _FS_start = 0x40380000 ); PROVIDE ( _FS_end = 0x403FA000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x2000 ); -<<<<<<< HEAD PROVIDE ( _BOOTLOADER_DATA = 0x0017E000 ); PROVIDE ( _SKETCH_AREA_end = _FS_start ); -======= PROVIDE ( _EEPROM_start = 0x403fb000 ); /* The following symbols are DEPRECATED and will be REMOVED in a future release */ PROVIDE ( _SPIFFS_start = 0x40380000 ); PROVIDE ( _SPIFFS_end = 0x403FA000 ); PROVIDE ( _SPIFFS_page = 0x100 ); PROVIDE ( _SPIFFS_block = 0x2000 ); ->>>>>>> upstream/master INCLUDE "local.eagle.app.v6.common.ld" diff --git a/tools/sdk/ld/eagle.flash.4m.ld b/tools/sdk/ld/eagle.flash.4m.ld index 9b860dbb52..999d0135ac 100644 --- a/tools/sdk/ld/eagle.flash.4m.ld +++ b/tools/sdk/ld/eagle.flash.4m.ld @@ -19,16 +19,13 @@ PROVIDE ( _FS_start = 0x405FB000 ); PROVIDE ( _FS_end = 0x405FB000 ); PROVIDE ( _FS_page = 0x0 ); PROVIDE ( _FS_block = 0x0 ); -<<<<<<< HEAD PROVIDE ( _BOOTLOADER_DATA = 0x003FE000 ); PROVIDE ( _SKETCH_AREA_end = _FS_start ); -======= PROVIDE ( _EEPROM_start = 0x405fb000 ); /* The following symbols are DEPRECATED and will be REMOVED in a future release */ PROVIDE ( _SPIFFS_start = 0x405FB000 ); PROVIDE ( _SPIFFS_end = 0x405FB000 ); PROVIDE ( _SPIFFS_page = 0x0 ); PROVIDE ( _SPIFFS_block = 0x0 ); ->>>>>>> upstream/master INCLUDE "local.eagle.app.v6.common.ld" diff --git a/tools/sdk/ld/eagle.flash.4m1m.ld b/tools/sdk/ld/eagle.flash.4m1m.ld index 0efb77697b..9bf2b8d97e 100644 --- a/tools/sdk/ld/eagle.flash.4m1m.ld +++ b/tools/sdk/ld/eagle.flash.4m1m.ld @@ -19,16 +19,13 @@ PROVIDE ( _FS_start = 0x40500000 ); PROVIDE ( _FS_end = 0x405FA000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x2000 ); -<<<<<<< HEAD PROVIDE ( _BOOTLOADER_DATA = 0x002FE000 ); PROVIDE ( _SKETCH_AREA_end = _FS_start ); -======= PROVIDE ( _EEPROM_start = 0x405fb000 ); /* The following symbols are DEPRECATED and will be REMOVED in a future release */ PROVIDE ( _SPIFFS_start = 0x40500000 ); PROVIDE ( _SPIFFS_end = 0x405FA000 ); PROVIDE ( _SPIFFS_page = 0x100 ); PROVIDE ( _SPIFFS_block = 0x2000 ); ->>>>>>> upstream/master INCLUDE "local.eagle.app.v6.common.ld" diff --git a/tools/sdk/ld/eagle.flash.4m2m.ld b/tools/sdk/ld/eagle.flash.4m2m.ld index cfff9c15fb..d2943d8482 100644 --- a/tools/sdk/ld/eagle.flash.4m2m.ld +++ b/tools/sdk/ld/eagle.flash.4m2m.ld @@ -19,16 +19,13 @@ PROVIDE ( _FS_start = 0x40400000 ); PROVIDE ( _FS_end = 0x405FA000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x2000 ); -<<<<<<< HEAD PROVIDE ( _BOOTLOADER_DATA = 0x001FE000 ); PROVIDE ( _SKETCH_AREA_end = _FS_start ); -======= PROVIDE ( _EEPROM_start = 0x405fb000 ); /* The following symbols are DEPRECATED and will be REMOVED in a future release */ PROVIDE ( _SPIFFS_start = 0x40400000 ); PROVIDE ( _SPIFFS_end = 0x405FA000 ); PROVIDE ( _SPIFFS_page = 0x100 ); PROVIDE ( _SPIFFS_block = 0x2000 ); ->>>>>>> upstream/master INCLUDE "local.eagle.app.v6.common.ld" diff --git a/tools/sdk/ld/eagle.flash.4m3m.ld b/tools/sdk/ld/eagle.flash.4m3m.ld index 69240f065c..e4cc238619 100644 --- a/tools/sdk/ld/eagle.flash.4m3m.ld +++ b/tools/sdk/ld/eagle.flash.4m3m.ld @@ -18,16 +18,13 @@ PROVIDE ( _FS_start = 0x40300000 ); PROVIDE ( _FS_end = 0x405FA000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x2000 ); -<<<<<<< HEAD PROVIDE ( _BOOTLOADER_DATA = 0x000FE000 ); PROVIDE ( _SKETCH_AREA_end = _FS_start ); -======= PROVIDE ( _EEPROM_start = 0x405fb000 ); /* The following symbols are DEPRECATED and will be REMOVED in a future release */ PROVIDE ( _SPIFFS_start = 0x40300000 ); PROVIDE ( _SPIFFS_end = 0x405FA000 ); PROVIDE ( _SPIFFS_page = 0x100 ); PROVIDE ( _SPIFFS_block = 0x2000 ); ->>>>>>> upstream/master INCLUDE "local.eagle.app.v6.common.ld" diff --git a/tools/sdk/ld/eagle.flash.512k.ld b/tools/sdk/ld/eagle.flash.512k.ld index d3bace1675..d938dc0ff2 100644 --- a/tools/sdk/ld/eagle.flash.512k.ld +++ b/tools/sdk/ld/eagle.flash.512k.ld @@ -19,16 +19,13 @@ PROVIDE ( _FS_start = 0x4027B000 ); PROVIDE ( _FS_end = 0x4027B000 ); PROVIDE ( _FS_page = 0x0 ); PROVIDE ( _FS_block = 0x0 ); -<<<<<<< HEAD PROVIDE ( _BOOTLOADER_DATA = 0x00079000 ); PROVIDE ( _SKETCH_AREA_end = _FS_start ); -======= PROVIDE ( _EEPROM_start = 0x4027b000 ); /* The following symbols are DEPRECATED and will be REMOVED in a future release */ PROVIDE ( _SPIFFS_start = 0x4027B000 ); PROVIDE ( _SPIFFS_end = 0x4027B000 ); PROVIDE ( _SPIFFS_page = 0x0 ); PROVIDE ( _SPIFFS_block = 0x0 ); ->>>>>>> upstream/master INCLUDE "local.eagle.app.v6.common.ld" diff --git a/tools/sdk/ld/eagle.flash.512k128.ld b/tools/sdk/ld/eagle.flash.512k128.ld index dbdd4a5db8..186b6864ad 100644 --- a/tools/sdk/ld/eagle.flash.512k128.ld +++ b/tools/sdk/ld/eagle.flash.512k128.ld @@ -19,16 +19,13 @@ PROVIDE ( _FS_start = 0x4025B000 ); PROVIDE ( _FS_end = 0x4027B000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x1000 ); -<<<<<<< HEAD PROVIDE ( _BOOTLOADER_DATA = 0x00059000 ); PROVIDE ( _SKETCH_AREA_end = _FS_start ); -======= PROVIDE ( _EEPROM_start = 0x4027b000 ); /* The following symbols are DEPRECATED and will be REMOVED in a future release */ PROVIDE ( _SPIFFS_start = 0x4025B000 ); PROVIDE ( _SPIFFS_end = 0x4027B000 ); PROVIDE ( _SPIFFS_page = 0x100 ); PROVIDE ( _SPIFFS_block = 0x1000 ); ->>>>>>> upstream/master INCLUDE "local.eagle.app.v6.common.ld" diff --git a/tools/sdk/ld/eagle.flash.512k32.ld b/tools/sdk/ld/eagle.flash.512k32.ld index 95ea2d256a..98696d72a8 100644 --- a/tools/sdk/ld/eagle.flash.512k32.ld +++ b/tools/sdk/ld/eagle.flash.512k32.ld @@ -19,16 +19,13 @@ PROVIDE ( _FS_start = 0x40273000 ); PROVIDE ( _FS_end = 0x4027B000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x1000 ); -<<<<<<< HEAD PROVIDE ( _BOOTLOADER_DATA = 0x00071000 ); PROVIDE ( _SKETCH_AREA_end = _FS_start ); -======= PROVIDE ( _EEPROM_start = 0x4027b000 ); /* The following symbols are DEPRECATED and will be REMOVED in a future release */ PROVIDE ( _SPIFFS_start = 0x40273000 ); PROVIDE ( _SPIFFS_end = 0x4027B000 ); PROVIDE ( _SPIFFS_page = 0x100 ); PROVIDE ( _SPIFFS_block = 0x1000 ); ->>>>>>> upstream/master INCLUDE "local.eagle.app.v6.common.ld" diff --git a/tools/sdk/ld/eagle.flash.512k64.ld b/tools/sdk/ld/eagle.flash.512k64.ld index eab07b8385..f67ebb30f2 100644 --- a/tools/sdk/ld/eagle.flash.512k64.ld +++ b/tools/sdk/ld/eagle.flash.512k64.ld @@ -19,16 +19,13 @@ PROVIDE ( _FS_start = 0x4026B000 ); PROVIDE ( _FS_end = 0x4027B000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x1000 ); -<<<<<<< HEAD PROVIDE ( _BOOTLOADER_DATA = 0x00069000 ); PROVIDE ( _SKETCH_AREA_end = _FS_start ); -======= PROVIDE ( _EEPROM_start = 0x4027b000 ); /* The following symbols are DEPRECATED and will be REMOVED in a future release */ PROVIDE ( _SPIFFS_start = 0x4026B000 ); PROVIDE ( _SPIFFS_end = 0x4027B000 ); PROVIDE ( _SPIFFS_page = 0x100 ); PROVIDE ( _SPIFFS_block = 0x1000 ); ->>>>>>> upstream/master INCLUDE "local.eagle.app.v6.common.ld" diff --git a/tools/sdk/ld/eagle.flash.8m6m.ld b/tools/sdk/ld/eagle.flash.8m6m.ld index f621ee8e0b..44040782dc 100644 --- a/tools/sdk/ld/eagle.flash.8m6m.ld +++ b/tools/sdk/ld/eagle.flash.8m6m.ld @@ -19,16 +19,13 @@ PROVIDE ( _FS_start = 0x40400000 ); PROVIDE ( _FS_end = 0x409FA000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x2000 ); -<<<<<<< HEAD PROVIDE ( _BOOTLOADER_DATA = 0x001FE000 ); PROVIDE ( _SKETCH_AREA_end = _FS_start ); -======= PROVIDE ( _EEPROM_start = 0x409fb000 ); /* The following symbols are DEPRECATED and will be REMOVED in a future release */ PROVIDE ( _SPIFFS_start = 0x40400000 ); PROVIDE ( _SPIFFS_end = 0x409FA000 ); PROVIDE ( _SPIFFS_page = 0x100 ); PROVIDE ( _SPIFFS_block = 0x2000 ); ->>>>>>> upstream/master INCLUDE "local.eagle.app.v6.common.ld" diff --git a/tools/sdk/ld/eagle.flash.8m7m.ld b/tools/sdk/ld/eagle.flash.8m7m.ld index 0f8fc93161..2cd3b98119 100644 --- a/tools/sdk/ld/eagle.flash.8m7m.ld +++ b/tools/sdk/ld/eagle.flash.8m7m.ld @@ -18,16 +18,13 @@ PROVIDE ( _FS_start = 0x40300000 ); PROVIDE ( _FS_end = 0x409FA000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x2000 ); -<<<<<<< HEAD PROVIDE ( _BOOTLOADER_DATA = 0x000FE000 ); PROVIDE ( _SKETCH_AREA_end = _FS_start ); -======= PROVIDE ( _EEPROM_start = 0x409fb000 ); /* The following symbols are DEPRECATED and will be REMOVED in a future release */ PROVIDE ( _SPIFFS_start = 0x40300000 ); PROVIDE ( _SPIFFS_end = 0x409FA000 ); PROVIDE ( _SPIFFS_page = 0x100 ); PROVIDE ( _SPIFFS_block = 0x2000 ); ->>>>>>> upstream/master INCLUDE "local.eagle.app.v6.common.ld" From 1339018d3de892910f4894d615dc92c77e625765 Mon Sep 17 00:00:00 2001 From: Julian Davison Date: Sun, 29 Sep 2019 21:08:30 +1300 Subject: [PATCH 13/17] switched out the cast --- cores/esp8266/Updater.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cores/esp8266/Updater.cpp b/cores/esp8266/Updater.cpp index be53f41887..30768e2c42 100644 --- a/cores/esp8266/Updater.cpp +++ b/cores/esp8266/Updater.cpp @@ -112,7 +112,7 @@ bool UpdaterClass::begin(size_t size, int command, int ledPin, uint8_t ledOn) { //size of current sketch rounded to a sector size_t currentSketchSize = (ESP.getSketchSize() + FLASH_SECTOR_SIZE - 1) & (~(FLASH_SECTOR_SIZE - 1)); //address of the end of the space available for sketch and update - uint32_t updateEndAddress = (uint32_t)&_SKETCH_AREA_end - 0x40200000; + uintptr_t updateEndAddress = (uintptr_t) &_SKETCH_AREA_end - 0x40200000; //size of the update rounded to a sector size_t roundedSize = (size + FLASH_SECTOR_SIZE - 1) & (~(FLASH_SECTOR_SIZE - 1)); From 68245ac1e98a01d9bcb6f7fd5a471dad87f59062 Mon Sep 17 00:00:00 2001 From: Julian Davison Date: Mon, 30 Sep 2019 21:22:47 +1300 Subject: [PATCH 14/17] Adjusted values to be addresses not offsets and fixed up references --- cores/esp8266/core_esp8266_eboot_command.cpp | 18 ++++++++++-------- tools/boards.txt.py | 4 ++-- tools/sdk/ld/eagle.flash.16m14m.ld | 4 ++-- tools/sdk/ld/eagle.flash.16m15m.ld | 4 ++-- tools/sdk/ld/eagle.flash.1m.ld | 4 ++-- tools/sdk/ld/eagle.flash.1m128.ld | 4 ++-- tools/sdk/ld/eagle.flash.1m144.ld | 4 ++-- tools/sdk/ld/eagle.flash.1m160.ld | 4 ++-- tools/sdk/ld/eagle.flash.1m192.ld | 4 ++-- tools/sdk/ld/eagle.flash.1m256.ld | 4 ++-- tools/sdk/ld/eagle.flash.1m512.ld | 4 ++-- tools/sdk/ld/eagle.flash.1m64.ld | 4 ++-- tools/sdk/ld/eagle.flash.2m.ld | 4 ++-- tools/sdk/ld/eagle.flash.2m128.ld | 4 ++-- tools/sdk/ld/eagle.flash.2m1m.ld | 4 ++-- tools/sdk/ld/eagle.flash.2m256.ld | 4 ++-- tools/sdk/ld/eagle.flash.2m512.ld | 4 ++-- tools/sdk/ld/eagle.flash.4m.ld | 4 ++-- tools/sdk/ld/eagle.flash.4m1m.ld | 4 ++-- tools/sdk/ld/eagle.flash.4m2m.ld | 4 ++-- tools/sdk/ld/eagle.flash.4m3m.ld | 4 ++-- tools/sdk/ld/eagle.flash.512k.ld | 4 ++-- tools/sdk/ld/eagle.flash.512k128.ld | 4 ++-- tools/sdk/ld/eagle.flash.512k32.ld | 4 ++-- tools/sdk/ld/eagle.flash.512k64.ld | 4 ++-- tools/sdk/ld/eagle.flash.8m6m.ld | 4 ++-- tools/sdk/ld/eagle.flash.8m7m.ld | 4 ++-- 27 files changed, 62 insertions(+), 60 deletions(-) diff --git a/cores/esp8266/core_esp8266_eboot_command.cpp b/cores/esp8266/core_esp8266_eboot_command.cpp index e5f3b64386..4df555b597 100644 --- a/cores/esp8266/core_esp8266_eboot_command.cpp +++ b/cores/esp8266/core_esp8266_eboot_command.cpp @@ -116,12 +116,12 @@ bool eraseBootCommandBlock(void) { return 1; } -uint32_t eboot_command_read_from_flash(void) +uint32_t eboot_command_read_from_flash(eboot_flash_command_t *cmd) { eboot_index_t eboot_index; eboot_flash_command_t *flash_command; uint32_t i; -// const uint32_t dw_count = sizeof(struct eboot_command) / sizeof(uint32_t); + const uint32_t dw_count = sizeof(struct eboot_command) / sizeof(uint32_t); if (!eboot_read_flash_index(&eboot_index)) { return 0; @@ -131,11 +131,11 @@ uint32_t eboot_command_read_from_flash(void) if (((flash_command->flags & EBOOT_CMD_FLAG_SLOT_FREE) == 0) && ((flash_command->flags & EBOOT_CMD_FLAG_PENDING) == EBOOT_CMD_FLAG_PENDING)) { // This is a valid command waiting to be actioned, or should be. The CRC check will determine if it's actually valid - // uint32_t* dst = (uint32_t *) cmd; - // uint32_t* src = (uint32_t *) flash_command->cmd; - // for (uint32_t i = 0; i < dw_count; ++i) { - // dst[i] = src[i]; - // } + uint32_t* dst = (uint32_t *) cmd; + uint32_t* src = (uint32_t *) &(flash_command->cmd); + for (uint32_t i = 0; i < dw_count; ++i) { + dst[i] = src[i]; + } return 1; } } @@ -158,7 +158,9 @@ uint32_t eboot_command_write_to_flash(struct eboot_command *cmd) } else { ets_printf("Read bootCommand %d, flags: %x\n", i, flash_command.flags); if (((flash_command.flags & EBOOT_CMD_FLAG_SLOT_FREE) == EBOOT_CMD_FLAG_SLOT_FREE) && - ((flash_command.flags & EBOOT_CMD_FLAG_PENDING) == EBOOT_CMD_FLAG_PENDING)) { + ((flash_command.flags & EBOOT_CMD_FLAG_PENDING) == EBOOT_CMD_FLAG_PENDING) && + (flash_command.cmd.magic == 0) + ) { target_command_slot = i; break; } diff --git a/tools/boards.txt.py b/tools/boards.txt.py index e5d5b0773b..36c1da011b 100755 --- a/tools/boards.txt.py +++ b/tools/boards.txt.py @@ -1281,8 +1281,8 @@ def flash_map (flashsize_kb, fs_kb = 0): print("PROVIDE ( _FS_end = 0x%08X );" % (0x40200000 + fs_end)) print("PROVIDE ( _FS_page = 0x%X );" % page) print("PROVIDE ( _FS_block = 0x%X );" % fs_blocksize) - print("PROVIDE ( _BOOTLOADER_DATA = 0x%08X );" % ota_commands_addr) - print("PROVIDE ( _SKETCH_AREA_end = _FS_start );") + print("PROVIDE ( _BOOTLOADER_DATA = 0x%08X );" % (0x40200000 + ota_commands_addr)) + print("PROVIDE ( _SKETCH_AREA_end = _BOOTLOADER_DATA );") print("PROVIDE ( _EEPROM_start = 0x%08x );" % (0x40200000 + eeprom_start)) # Re-add deprecated symbols pointing to the same address as the new standard ones print("/* The following symbols are DEPRECATED and will be REMOVED in a future release */") diff --git a/tools/sdk/ld/eagle.flash.16m14m.ld b/tools/sdk/ld/eagle.flash.16m14m.ld index 349dacfd23..e42d2bbe2f 100644 --- a/tools/sdk/ld/eagle.flash.16m14m.ld +++ b/tools/sdk/ld/eagle.flash.16m14m.ld @@ -19,8 +19,8 @@ PROVIDE ( _FS_start = 0x40400000 ); PROVIDE ( _FS_end = 0x411FA000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x2000 ); -PROVIDE ( _BOOTLOADER_DATA = 0x001FE000 ); -PROVIDE ( _SKETCH_AREA_end = _FS_start ); +PROVIDE ( _BOOTLOADER_DATA = 0x403FE000 ); +PROVIDE ( _SKETCH_AREA_end = _BOOTLOADER_DATA ); PROVIDE ( _EEPROM_start = 0x411fb000 ); /* The following symbols are DEPRECATED and will be REMOVED in a future release */ PROVIDE ( _SPIFFS_start = 0x40400000 ); diff --git a/tools/sdk/ld/eagle.flash.16m15m.ld b/tools/sdk/ld/eagle.flash.16m15m.ld index fd3caf7a19..b426d27566 100644 --- a/tools/sdk/ld/eagle.flash.16m15m.ld +++ b/tools/sdk/ld/eagle.flash.16m15m.ld @@ -18,8 +18,8 @@ PROVIDE ( _FS_start = 0x40300000 ); PROVIDE ( _FS_end = 0x411FA000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x2000 ); -PROVIDE ( _BOOTLOADER_DATA = 0x000FE000 ); -PROVIDE ( _SKETCH_AREA_end = _FS_start ); +PROVIDE ( _BOOTLOADER_DATA = 0x402FE000 ); +PROVIDE ( _SKETCH_AREA_end = _BOOTLOADER_DATA ); PROVIDE ( _EEPROM_start = 0x411fb000 ); /* The following symbols are DEPRECATED and will be REMOVED in a future release */ PROVIDE ( _SPIFFS_start = 0x40300000 ); diff --git a/tools/sdk/ld/eagle.flash.1m.ld b/tools/sdk/ld/eagle.flash.1m.ld index a24e863383..48e48e2a4b 100644 --- a/tools/sdk/ld/eagle.flash.1m.ld +++ b/tools/sdk/ld/eagle.flash.1m.ld @@ -19,8 +19,8 @@ PROVIDE ( _FS_start = 0x402FB000 ); PROVIDE ( _FS_end = 0x402FB000 ); PROVIDE ( _FS_page = 0x0 ); PROVIDE ( _FS_block = 0x0 ); -PROVIDE ( _BOOTLOADER_DATA = 0x000F9000 ); -PROVIDE ( _SKETCH_AREA_end = _FS_start ); +PROVIDE ( _BOOTLOADER_DATA = 0x402F9000 ); +PROVIDE ( _SKETCH_AREA_end = _BOOTLOADER_DATA ); PROVIDE ( _EEPROM_start = 0x402fb000 ); /* The following symbols are DEPRECATED and will be REMOVED in a future release */ PROVIDE ( _SPIFFS_start = 0x402FB000 ); diff --git a/tools/sdk/ld/eagle.flash.1m128.ld b/tools/sdk/ld/eagle.flash.1m128.ld index 83883c912d..5ba63192a0 100644 --- a/tools/sdk/ld/eagle.flash.1m128.ld +++ b/tools/sdk/ld/eagle.flash.1m128.ld @@ -19,8 +19,8 @@ PROVIDE ( _FS_start = 0x402DB000 ); PROVIDE ( _FS_end = 0x402FB000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x1000 ); -PROVIDE ( _BOOTLOADER_DATA = 0x000D9000 ); -PROVIDE ( _SKETCH_AREA_end = _FS_start ); +PROVIDE ( _BOOTLOADER_DATA = 0x402D9000 ); +PROVIDE ( _SKETCH_AREA_end = _BOOTLOADER_DATA ); PROVIDE ( _EEPROM_start = 0x402fb000 ); /* The following symbols are DEPRECATED and will be REMOVED in a future release */ PROVIDE ( _SPIFFS_start = 0x402DB000 ); diff --git a/tools/sdk/ld/eagle.flash.1m144.ld b/tools/sdk/ld/eagle.flash.1m144.ld index da0a96aa63..bdd09feeee 100644 --- a/tools/sdk/ld/eagle.flash.1m144.ld +++ b/tools/sdk/ld/eagle.flash.1m144.ld @@ -19,8 +19,8 @@ PROVIDE ( _FS_start = 0x402D7000 ); PROVIDE ( _FS_end = 0x402FB000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x1000 ); -PROVIDE ( _BOOTLOADER_DATA = 0x000D5000 ); -PROVIDE ( _SKETCH_AREA_end = _FS_start ); +PROVIDE ( _BOOTLOADER_DATA = 0x402D5000 ); +PROVIDE ( _SKETCH_AREA_end = _BOOTLOADER_DATA ); PROVIDE ( _EEPROM_start = 0x402fb000 ); /* The following symbols are DEPRECATED and will be REMOVED in a future release */ PROVIDE ( _SPIFFS_start = 0x402D7000 ); diff --git a/tools/sdk/ld/eagle.flash.1m160.ld b/tools/sdk/ld/eagle.flash.1m160.ld index daf201ffe2..d5d7523c19 100644 --- a/tools/sdk/ld/eagle.flash.1m160.ld +++ b/tools/sdk/ld/eagle.flash.1m160.ld @@ -19,8 +19,8 @@ PROVIDE ( _FS_start = 0x402D3000 ); PROVIDE ( _FS_end = 0x402FB000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x1000 ); -PROVIDE ( _BOOTLOADER_DATA = 0x000D1000 ); -PROVIDE ( _SKETCH_AREA_end = _FS_start ); +PROVIDE ( _BOOTLOADER_DATA = 0x402D1000 ); +PROVIDE ( _SKETCH_AREA_end = _BOOTLOADER_DATA ); PROVIDE ( _EEPROM_start = 0x402fb000 ); /* The following symbols are DEPRECATED and will be REMOVED in a future release */ PROVIDE ( _SPIFFS_start = 0x402D3000 ); diff --git a/tools/sdk/ld/eagle.flash.1m192.ld b/tools/sdk/ld/eagle.flash.1m192.ld index d49902b56e..d3b0bde3a6 100644 --- a/tools/sdk/ld/eagle.flash.1m192.ld +++ b/tools/sdk/ld/eagle.flash.1m192.ld @@ -19,8 +19,8 @@ PROVIDE ( _FS_start = 0x402CB000 ); PROVIDE ( _FS_end = 0x402FB000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x1000 ); -PROVIDE ( _BOOTLOADER_DATA = 0x000C9000 ); -PROVIDE ( _SKETCH_AREA_end = _FS_start ); +PROVIDE ( _BOOTLOADER_DATA = 0x402C9000 ); +PROVIDE ( _SKETCH_AREA_end = _BOOTLOADER_DATA ); PROVIDE ( _EEPROM_start = 0x402fb000 ); /* The following symbols are DEPRECATED and will be REMOVED in a future release */ PROVIDE ( _SPIFFS_start = 0x402CB000 ); diff --git a/tools/sdk/ld/eagle.flash.1m256.ld b/tools/sdk/ld/eagle.flash.1m256.ld index 5cfb28e254..d7c668eb9d 100644 --- a/tools/sdk/ld/eagle.flash.1m256.ld +++ b/tools/sdk/ld/eagle.flash.1m256.ld @@ -19,8 +19,8 @@ PROVIDE ( _FS_start = 0x402BB000 ); PROVIDE ( _FS_end = 0x402FB000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x1000 ); -PROVIDE ( _BOOTLOADER_DATA = 0x000B9000 ); -PROVIDE ( _SKETCH_AREA_end = _FS_start ); +PROVIDE ( _BOOTLOADER_DATA = 0x402B9000 ); +PROVIDE ( _SKETCH_AREA_end = _BOOTLOADER_DATA ); PROVIDE ( _EEPROM_start = 0x402fb000 ); /* The following symbols are DEPRECATED and will be REMOVED in a future release */ PROVIDE ( _SPIFFS_start = 0x402BB000 ); diff --git a/tools/sdk/ld/eagle.flash.1m512.ld b/tools/sdk/ld/eagle.flash.1m512.ld index 880e20ef3a..0df3b6aeef 100644 --- a/tools/sdk/ld/eagle.flash.1m512.ld +++ b/tools/sdk/ld/eagle.flash.1m512.ld @@ -19,8 +19,8 @@ PROVIDE ( _FS_start = 0x4027B000 ); PROVIDE ( _FS_end = 0x402FB000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x2000 ); -PROVIDE ( _BOOTLOADER_DATA = 0x00079000 ); -PROVIDE ( _SKETCH_AREA_end = _FS_start ); +PROVIDE ( _BOOTLOADER_DATA = 0x40279000 ); +PROVIDE ( _SKETCH_AREA_end = _BOOTLOADER_DATA ); PROVIDE ( _EEPROM_start = 0x402fb000 ); /* The following symbols are DEPRECATED and will be REMOVED in a future release */ PROVIDE ( _SPIFFS_start = 0x4027B000 ); diff --git a/tools/sdk/ld/eagle.flash.1m64.ld b/tools/sdk/ld/eagle.flash.1m64.ld index dcd87dc048..5f492d7e91 100644 --- a/tools/sdk/ld/eagle.flash.1m64.ld +++ b/tools/sdk/ld/eagle.flash.1m64.ld @@ -19,8 +19,8 @@ PROVIDE ( _FS_start = 0x402EB000 ); PROVIDE ( _FS_end = 0x402FB000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x1000 ); -PROVIDE ( _BOOTLOADER_DATA = 0x000E9000 ); -PROVIDE ( _SKETCH_AREA_end = _FS_start ); +PROVIDE ( _BOOTLOADER_DATA = 0x402E9000 ); +PROVIDE ( _SKETCH_AREA_end = _BOOTLOADER_DATA ); PROVIDE ( _EEPROM_start = 0x402fb000 ); /* The following symbols are DEPRECATED and will be REMOVED in a future release */ PROVIDE ( _SPIFFS_start = 0x402EB000 ); diff --git a/tools/sdk/ld/eagle.flash.2m.ld b/tools/sdk/ld/eagle.flash.2m.ld index 4c713306fe..dfa6cb627c 100644 --- a/tools/sdk/ld/eagle.flash.2m.ld +++ b/tools/sdk/ld/eagle.flash.2m.ld @@ -19,8 +19,8 @@ PROVIDE ( _FS_start = 0x403FB000 ); PROVIDE ( _FS_end = 0x403FB000 ); PROVIDE ( _FS_page = 0x0 ); PROVIDE ( _FS_block = 0x0 ); -PROVIDE ( _BOOTLOADER_DATA = 0x001FE000 ); -PROVIDE ( _SKETCH_AREA_end = _FS_start ); +PROVIDE ( _BOOTLOADER_DATA = 0x403FE000 ); +PROVIDE ( _SKETCH_AREA_end = _BOOTLOADER_DATA ); PROVIDE ( _EEPROM_start = 0x403fb000 ); /* The following symbols are DEPRECATED and will be REMOVED in a future release */ PROVIDE ( _SPIFFS_start = 0x403FB000 ); diff --git a/tools/sdk/ld/eagle.flash.2m128.ld b/tools/sdk/ld/eagle.flash.2m128.ld index d8a0566bb6..51d2623bac 100644 --- a/tools/sdk/ld/eagle.flash.2m128.ld +++ b/tools/sdk/ld/eagle.flash.2m128.ld @@ -19,8 +19,8 @@ PROVIDE ( _FS_start = 0x403E0000 ); PROVIDE ( _FS_end = 0x403FB000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x1000 ); -PROVIDE ( _BOOTLOADER_DATA = 0x001DE000 ); -PROVIDE ( _SKETCH_AREA_end = _FS_start ); +PROVIDE ( _BOOTLOADER_DATA = 0x403DE000 ); +PROVIDE ( _SKETCH_AREA_end = _BOOTLOADER_DATA ); PROVIDE ( _EEPROM_start = 0x403fb000 ); /* The following symbols are DEPRECATED and will be REMOVED in a future release */ PROVIDE ( _SPIFFS_start = 0x403E0000 ); diff --git a/tools/sdk/ld/eagle.flash.2m1m.ld b/tools/sdk/ld/eagle.flash.2m1m.ld index 6ce00145c1..581a9b89e7 100644 --- a/tools/sdk/ld/eagle.flash.2m1m.ld +++ b/tools/sdk/ld/eagle.flash.2m1m.ld @@ -18,8 +18,8 @@ PROVIDE ( _FS_start = 0x40300000 ); PROVIDE ( _FS_end = 0x403FA000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x2000 ); -PROVIDE ( _BOOTLOADER_DATA = 0x000FE000 ); -PROVIDE ( _SKETCH_AREA_end = _FS_start ); +PROVIDE ( _BOOTLOADER_DATA = 0x402FE000 ); +PROVIDE ( _SKETCH_AREA_end = _BOOTLOADER_DATA ); PROVIDE ( _EEPROM_start = 0x403fb000 ); /* The following symbols are DEPRECATED and will be REMOVED in a future release */ PROVIDE ( _SPIFFS_start = 0x40300000 ); diff --git a/tools/sdk/ld/eagle.flash.2m256.ld b/tools/sdk/ld/eagle.flash.2m256.ld index fc96a01d3c..24fbed9672 100644 --- a/tools/sdk/ld/eagle.flash.2m256.ld +++ b/tools/sdk/ld/eagle.flash.2m256.ld @@ -19,8 +19,8 @@ PROVIDE ( _FS_start = 0x403C0000 ); PROVIDE ( _FS_end = 0x403FB000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x1000 ); -PROVIDE ( _BOOTLOADER_DATA = 0x001BE000 ); -PROVIDE ( _SKETCH_AREA_end = _FS_start ); +PROVIDE ( _BOOTLOADER_DATA = 0x403BE000 ); +PROVIDE ( _SKETCH_AREA_end = _BOOTLOADER_DATA ); PROVIDE ( _EEPROM_start = 0x403fb000 ); /* The following symbols are DEPRECATED and will be REMOVED in a future release */ PROVIDE ( _SPIFFS_start = 0x403C0000 ); diff --git a/tools/sdk/ld/eagle.flash.2m512.ld b/tools/sdk/ld/eagle.flash.2m512.ld index 34ef18573f..79dbd7f49c 100644 --- a/tools/sdk/ld/eagle.flash.2m512.ld +++ b/tools/sdk/ld/eagle.flash.2m512.ld @@ -19,8 +19,8 @@ PROVIDE ( _FS_start = 0x40380000 ); PROVIDE ( _FS_end = 0x403FA000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x2000 ); -PROVIDE ( _BOOTLOADER_DATA = 0x0017E000 ); -PROVIDE ( _SKETCH_AREA_end = _FS_start ); +PROVIDE ( _BOOTLOADER_DATA = 0x4037E000 ); +PROVIDE ( _SKETCH_AREA_end = _BOOTLOADER_DATA ); PROVIDE ( _EEPROM_start = 0x403fb000 ); /* The following symbols are DEPRECATED and will be REMOVED in a future release */ PROVIDE ( _SPIFFS_start = 0x40380000 ); diff --git a/tools/sdk/ld/eagle.flash.4m.ld b/tools/sdk/ld/eagle.flash.4m.ld index 999d0135ac..0cff11b539 100644 --- a/tools/sdk/ld/eagle.flash.4m.ld +++ b/tools/sdk/ld/eagle.flash.4m.ld @@ -19,8 +19,8 @@ PROVIDE ( _FS_start = 0x405FB000 ); PROVIDE ( _FS_end = 0x405FB000 ); PROVIDE ( _FS_page = 0x0 ); PROVIDE ( _FS_block = 0x0 ); -PROVIDE ( _BOOTLOADER_DATA = 0x003FE000 ); -PROVIDE ( _SKETCH_AREA_end = _FS_start ); +PROVIDE ( _BOOTLOADER_DATA = 0x405FE000 ); +PROVIDE ( _SKETCH_AREA_end = _BOOTLOADER_DATA ); PROVIDE ( _EEPROM_start = 0x405fb000 ); /* The following symbols are DEPRECATED and will be REMOVED in a future release */ PROVIDE ( _SPIFFS_start = 0x405FB000 ); diff --git a/tools/sdk/ld/eagle.flash.4m1m.ld b/tools/sdk/ld/eagle.flash.4m1m.ld index 9bf2b8d97e..103a783a0c 100644 --- a/tools/sdk/ld/eagle.flash.4m1m.ld +++ b/tools/sdk/ld/eagle.flash.4m1m.ld @@ -19,8 +19,8 @@ PROVIDE ( _FS_start = 0x40500000 ); PROVIDE ( _FS_end = 0x405FA000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x2000 ); -PROVIDE ( _BOOTLOADER_DATA = 0x002FE000 ); -PROVIDE ( _SKETCH_AREA_end = _FS_start ); +PROVIDE ( _BOOTLOADER_DATA = 0x404FE000 ); +PROVIDE ( _SKETCH_AREA_end = _BOOTLOADER_DATA ); PROVIDE ( _EEPROM_start = 0x405fb000 ); /* The following symbols are DEPRECATED and will be REMOVED in a future release */ PROVIDE ( _SPIFFS_start = 0x40500000 ); diff --git a/tools/sdk/ld/eagle.flash.4m2m.ld b/tools/sdk/ld/eagle.flash.4m2m.ld index d2943d8482..3624650f21 100644 --- a/tools/sdk/ld/eagle.flash.4m2m.ld +++ b/tools/sdk/ld/eagle.flash.4m2m.ld @@ -19,8 +19,8 @@ PROVIDE ( _FS_start = 0x40400000 ); PROVIDE ( _FS_end = 0x405FA000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x2000 ); -PROVIDE ( _BOOTLOADER_DATA = 0x001FE000 ); -PROVIDE ( _SKETCH_AREA_end = _FS_start ); +PROVIDE ( _BOOTLOADER_DATA = 0x403FE000 ); +PROVIDE ( _SKETCH_AREA_end = _BOOTLOADER_DATA ); PROVIDE ( _EEPROM_start = 0x405fb000 ); /* The following symbols are DEPRECATED and will be REMOVED in a future release */ PROVIDE ( _SPIFFS_start = 0x40400000 ); diff --git a/tools/sdk/ld/eagle.flash.4m3m.ld b/tools/sdk/ld/eagle.flash.4m3m.ld index e4cc238619..539cfd8b29 100644 --- a/tools/sdk/ld/eagle.flash.4m3m.ld +++ b/tools/sdk/ld/eagle.flash.4m3m.ld @@ -18,8 +18,8 @@ PROVIDE ( _FS_start = 0x40300000 ); PROVIDE ( _FS_end = 0x405FA000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x2000 ); -PROVIDE ( _BOOTLOADER_DATA = 0x000FE000 ); -PROVIDE ( _SKETCH_AREA_end = _FS_start ); +PROVIDE ( _BOOTLOADER_DATA = 0x402FE000 ); +PROVIDE ( _SKETCH_AREA_end = _BOOTLOADER_DATA ); PROVIDE ( _EEPROM_start = 0x405fb000 ); /* The following symbols are DEPRECATED and will be REMOVED in a future release */ PROVIDE ( _SPIFFS_start = 0x40300000 ); diff --git a/tools/sdk/ld/eagle.flash.512k.ld b/tools/sdk/ld/eagle.flash.512k.ld index d938dc0ff2..1346902f28 100644 --- a/tools/sdk/ld/eagle.flash.512k.ld +++ b/tools/sdk/ld/eagle.flash.512k.ld @@ -19,8 +19,8 @@ PROVIDE ( _FS_start = 0x4027B000 ); PROVIDE ( _FS_end = 0x4027B000 ); PROVIDE ( _FS_page = 0x0 ); PROVIDE ( _FS_block = 0x0 ); -PROVIDE ( _BOOTLOADER_DATA = 0x00079000 ); -PROVIDE ( _SKETCH_AREA_end = _FS_start ); +PROVIDE ( _BOOTLOADER_DATA = 0x40279000 ); +PROVIDE ( _SKETCH_AREA_end = _BOOTLOADER_DATA ); PROVIDE ( _EEPROM_start = 0x4027b000 ); /* The following symbols are DEPRECATED and will be REMOVED in a future release */ PROVIDE ( _SPIFFS_start = 0x4027B000 ); diff --git a/tools/sdk/ld/eagle.flash.512k128.ld b/tools/sdk/ld/eagle.flash.512k128.ld index 186b6864ad..6de4ee1dab 100644 --- a/tools/sdk/ld/eagle.flash.512k128.ld +++ b/tools/sdk/ld/eagle.flash.512k128.ld @@ -19,8 +19,8 @@ PROVIDE ( _FS_start = 0x4025B000 ); PROVIDE ( _FS_end = 0x4027B000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x1000 ); -PROVIDE ( _BOOTLOADER_DATA = 0x00059000 ); -PROVIDE ( _SKETCH_AREA_end = _FS_start ); +PROVIDE ( _BOOTLOADER_DATA = 0x40259000 ); +PROVIDE ( _SKETCH_AREA_end = _BOOTLOADER_DATA ); PROVIDE ( _EEPROM_start = 0x4027b000 ); /* The following symbols are DEPRECATED and will be REMOVED in a future release */ PROVIDE ( _SPIFFS_start = 0x4025B000 ); diff --git a/tools/sdk/ld/eagle.flash.512k32.ld b/tools/sdk/ld/eagle.flash.512k32.ld index 98696d72a8..df6cacccb4 100644 --- a/tools/sdk/ld/eagle.flash.512k32.ld +++ b/tools/sdk/ld/eagle.flash.512k32.ld @@ -19,8 +19,8 @@ PROVIDE ( _FS_start = 0x40273000 ); PROVIDE ( _FS_end = 0x4027B000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x1000 ); -PROVIDE ( _BOOTLOADER_DATA = 0x00071000 ); -PROVIDE ( _SKETCH_AREA_end = _FS_start ); +PROVIDE ( _BOOTLOADER_DATA = 0x40271000 ); +PROVIDE ( _SKETCH_AREA_end = _BOOTLOADER_DATA ); PROVIDE ( _EEPROM_start = 0x4027b000 ); /* The following symbols are DEPRECATED and will be REMOVED in a future release */ PROVIDE ( _SPIFFS_start = 0x40273000 ); diff --git a/tools/sdk/ld/eagle.flash.512k64.ld b/tools/sdk/ld/eagle.flash.512k64.ld index f67ebb30f2..20bf643585 100644 --- a/tools/sdk/ld/eagle.flash.512k64.ld +++ b/tools/sdk/ld/eagle.flash.512k64.ld @@ -19,8 +19,8 @@ PROVIDE ( _FS_start = 0x4026B000 ); PROVIDE ( _FS_end = 0x4027B000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x1000 ); -PROVIDE ( _BOOTLOADER_DATA = 0x00069000 ); -PROVIDE ( _SKETCH_AREA_end = _FS_start ); +PROVIDE ( _BOOTLOADER_DATA = 0x40269000 ); +PROVIDE ( _SKETCH_AREA_end = _BOOTLOADER_DATA ); PROVIDE ( _EEPROM_start = 0x4027b000 ); /* The following symbols are DEPRECATED and will be REMOVED in a future release */ PROVIDE ( _SPIFFS_start = 0x4026B000 ); diff --git a/tools/sdk/ld/eagle.flash.8m6m.ld b/tools/sdk/ld/eagle.flash.8m6m.ld index 44040782dc..f92fb55d80 100644 --- a/tools/sdk/ld/eagle.flash.8m6m.ld +++ b/tools/sdk/ld/eagle.flash.8m6m.ld @@ -19,8 +19,8 @@ PROVIDE ( _FS_start = 0x40400000 ); PROVIDE ( _FS_end = 0x409FA000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x2000 ); -PROVIDE ( _BOOTLOADER_DATA = 0x001FE000 ); -PROVIDE ( _SKETCH_AREA_end = _FS_start ); +PROVIDE ( _BOOTLOADER_DATA = 0x403FE000 ); +PROVIDE ( _SKETCH_AREA_end = _BOOTLOADER_DATA ); PROVIDE ( _EEPROM_start = 0x409fb000 ); /* The following symbols are DEPRECATED and will be REMOVED in a future release */ PROVIDE ( _SPIFFS_start = 0x40400000 ); diff --git a/tools/sdk/ld/eagle.flash.8m7m.ld b/tools/sdk/ld/eagle.flash.8m7m.ld index 2cd3b98119..37aa3e4b34 100644 --- a/tools/sdk/ld/eagle.flash.8m7m.ld +++ b/tools/sdk/ld/eagle.flash.8m7m.ld @@ -18,8 +18,8 @@ PROVIDE ( _FS_start = 0x40300000 ); PROVIDE ( _FS_end = 0x409FA000 ); PROVIDE ( _FS_page = 0x100 ); PROVIDE ( _FS_block = 0x2000 ); -PROVIDE ( _BOOTLOADER_DATA = 0x000FE000 ); -PROVIDE ( _SKETCH_AREA_end = _FS_start ); +PROVIDE ( _BOOTLOADER_DATA = 0x402FE000 ); +PROVIDE ( _SKETCH_AREA_end = _BOOTLOADER_DATA ); PROVIDE ( _EEPROM_start = 0x409fb000 ); /* The following symbols are DEPRECATED and will be REMOVED in a future release */ PROVIDE ( _SPIFFS_start = 0x40300000 ); From fa00e1e3b2eab8f249293c4e400b54357474be45 Mon Sep 17 00:00:00 2001 From: Julian Davison Date: Wed, 2 Oct 2019 17:52:31 +1300 Subject: [PATCH 15/17] Tweak tests --- tests/common.sh | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/tests/common.sh b/tests/common.sh index b93bd57ba9..af65f672a6 100755 --- a/tests/common.sh +++ b/tests/common.sh @@ -110,16 +110,17 @@ function build_sketches() fi echo -e "\n ------------ Building $sketch ------------ \n"; # $arduino --verify $sketch; - if [ "$WINDOWS" == "1" ]; then - sketch=$(echo $sketch | sed 's/^\/c//') - # MINGW will try to be helpful and silently convert args that look like paths to point to a spot inside the MinGW dir. This breaks everything. - # http://www.mingw.org/wiki/Posix_path_conversion - # https://stackoverflow.com/questions/7250130/how-to-stop-mingw-and-msys-from-mangling-path-names-given-at-the-command-line#34386471 - export MSYS2_ARG_CONV_EXC="*" - export MSYS_NO_PATHCONV=1 + if [ "$WINDOWS" == "1" ]; then + sketch=$(echo $sketch | sed 's/^\/c//') + # MINGW will try to be helpful and silently convert args that look like paths to point to a spot inside the MinGW dir. This breaks everything. + # http://www.mingw.org/wiki/Posix_path_conversion + # https://stackoverflow.com/questions/7250130/how-to-stop-mingw-and-msys-from-mangling-path-names-given-at-the-command-line#34386471 + export MSYS2_ARG_CONV_EXC="*" + export MSYS_NO_PATHCONV=1 fi echo "$build_cmd $sketch" time ($build_cmd $sketch >build.log) + time ($build_cmd $sketch ) local result=$? if [ $result -ne 0 ]; then echo "Build failed ($1)" @@ -178,10 +179,10 @@ function install_ide() mv Arduino.app arduino-nightly mv arduino-nightly/Contents/Java/* arduino-nightly/. else - test -r arduino.tar.xz || wget -O arduino.tar.xz https://www.arduino.cc/download.php?f=/arduino-nightly-linux64.tar.xz + test -r arduino.tar.xz || wget -O arduino.tar.xz https://www.arduino.cc/download.php?f=/arduino-1.8.10-linux64.tar.xz tar xf arduino.tar.xz fi - mv arduino-nightly $ide_path + mv arduino-1.8.10 $ide_path cd $ide_path/hardware mkdir esp8266com cd esp8266com From 44ce1f783a464b5aa8420564d519a1fe3c707528 Mon Sep 17 00:00:00 2001 From: Julian Davison Date: Thu, 3 Oct 2019 18:39:30 +1300 Subject: [PATCH 16/17] Added some conditions around the debug output of eboot, which are default off. Readded the start of the eboot docs in README.md (still WIP, but it's a start) Adjusted the default number of commands that are cycled through for wear levelling to 32 Fixed a :facepalm: bug in the loop to find the first available flash-based command block --- bootloaders/eboot/Makefile | 2 +- bootloaders/eboot/README.md | 47 +++++++++++++++++++ bootloaders/eboot/eboot.c | 14 +++++- bootloaders/eboot/eboot.elf | Bin 21284 -> 19660 bytes bootloaders/eboot/eboot_command.c | 26 ++++++++-- bootloaders/eboot/eboot_command.h | 2 +- cores/esp8266/core_esp8266_eboot_command.cpp | 2 +- cores/esp8266/eboot_command.h | 2 +- 8 files changed, 86 insertions(+), 9 deletions(-) create mode 100755 bootloaders/eboot/README.md diff --git a/bootloaders/eboot/Makefile b/bootloaders/eboot/Makefile index bf0dc183ee..739055f879 100644 --- a/bootloaders/eboot/Makefile +++ b/bootloaders/eboot/Makefile @@ -18,7 +18,7 @@ LD := $(XTENSA_TOOLCHAIN)xtensa-lx106-elf-gcc OBJDUMP := $(XTENSA_TOOLCHAIN)xtensa-lx106-elf-objdump INC += -I../../tools/sdk/include -CFLAGS += -std=gnu99 -DEBOOT_ENABLE_FLASH_STORAGE +CFLAGS += -std=gnu99 -DEBOOT_ENABLE_FLASH_STORAGE #-DEBOOT_ENABLE_SERIAL_DEBUG CFLAGS += -O0 -g -Wpointer-arith -Wno-implicit-function-declaration -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mno-text-section-literals diff --git a/bootloaders/eboot/README.md b/bootloaders/eboot/README.md new file mode 100755 index 0000000000..f02fefd7c2 --- /dev/null +++ b/bootloaders/eboot/README.md @@ -0,0 +1,47 @@ +eboot Bootloader +================ + + +A simple bootloader which can copy an OTA update to main application address in flash and load the application code to IRAM. + +# Contents +- [Startup sequence](#startup-sequence) + + +### Startup sequence ### + +On startup the ESP ROM will [load and start the firmware image](#load-and-start) from flash location 0x0 - eboot. + +##### eboot will ##### +1. print a version string from the current firmware image +2. [attempt to read a command](#read-eboot-command) + 1. execute command (if found) + 2. on completion of the command, mark it complete +3. [load and start the application](#load-and-start) + + + +### Read eboot command ### + +Historically eboot commands were stored in RTC RAM. In an effort to survive a power-outage mid-update (which will claer the RTC RAM) there is now provision for storing the commands in Flash. If no valid command is found in the flash storage (or flash storage is disabled) eboot will try RTC RAM. + +Commands are considered valid if the checksum is correct. + +```C +typedef struct eboot_command { + uint32_t magic; + enum action_t action; + uint32_t args[29]; + uint32_t crc32; +} eboot_command_t; +``` + + +### Load and start ### + +The firmware images are expected to have ELF headers indicating what location each section should be loaded into - which is relevant for the RAM locations. + +Both the ESP bootloader and eboot will work through the image sections copying the contents of the appropriate ones into their address. + +Finally execution jumps to the entry-point specified in the image header. + diff --git a/bootloaders/eboot/eboot.c b/bootloaders/eboot/eboot.c index 2c6082db3b..237f6fbaf5 100644 --- a/bootloaders/eboot/eboot.c +++ b/bootloaders/eboot/eboot.c @@ -32,6 +32,7 @@ int print_version(const uint32_t flash_addr) return 0; } +#if defined (EBOOT_ENABLE_SERIAL_DEBUG) int print_flags(const uint32_t flash_addr) { const char* __attribute__ ((aligned (4))) fmtt = "#%08x\n\0\0"; @@ -44,7 +45,7 @@ int print_flags(const uint32_t flash_addr) ets_putc('<'); ets_printf((const char*) fmt, ver); ets_putc('\n'); - for (i = 0; i < 8; i++) { + for (i = 0; i < EBOOT_COMMAND_MAX_COUNT; i++) { ets_putc('0' + i); ets_putc(':'); readBootCommand(i, &cmd); @@ -58,6 +59,9 @@ int print_flags(const uint32_t flash_addr) ets_putc('\n'); return 0; } +#else +#define print_flags(X) {} +#endif int find_app_start(const uint32_t flash_addr) { @@ -105,12 +109,14 @@ int load_app_from_flash_raw(const uint32_t flash_addr) const uint32_t address = section_header.address; +#if defined (EBOOT_ENABLE_SERIAL_DEBUG) ets_putc('f'); ets_printf((const char*) fmt, pos); ets_putc('t'); ets_printf((const char*) fmt, address); ets_putc('s'); ets_printf((const char*) fmt, section_header.size); +#endif bool load = false; @@ -131,14 +137,18 @@ int load_app_from_flash_raw(const uint32_t flash_addr) continue; } +#if defined (EBOOT_ENABLE_SERIAL_DEBUG) ets_putc('l'); ets_putc('o'); +#endif if (SPIRead(pos, (void*)address, section_header.size)) return 3; +#if defined (EBOOT_ENABLE_SERIAL_DEBUG) ets_putc('a'); ets_putc('d'); ets_putc('\n'); +#endif pos += section_header.size; } @@ -161,12 +171,14 @@ int copy_raw(const uint32_t src_addr, fmt[0] = ((uint32_t*) fmtt)[0]; fmt[1] = ((uint32_t*) fmtt)[1]; +#if defined (EBOOT_ENABLE_SERIAL_DEBUG) ets_putc('S'); ets_printf((const char*) fmt, src_addr); ets_putc('D'); ets_printf((const char*) fmt, dst_addr); ets_putc('B'); ets_printf((const char*) fmt, size); +#endif // require regions to be aligned if (src_addr & 0xfff != 0 || diff --git a/bootloaders/eboot/eboot.elf b/bootloaders/eboot/eboot.elf index b251eaf1658df87e3689268002d2ef3ee9901632..bde87d06ef044beddd76a5bab083943a568d323c 100755 GIT binary patch literal 19660 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 literal 21284 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 O-= EBOOT_COMMAND_MAX_COUNT) { return 0; } +#if defined (EBOOT_ENABLE_SERIAL_DEBUG) ets_putc('r'); ets_putc('b'); ets_putc('0' + cmd); ets_putc('\n'); +#endif uint32_t uint = (uint32_t) cmds; uint32_t addr = (uint32_t)cmds - 0x40200000; addr += cmd * sizeof(*dst); @@ -79,10 +81,12 @@ bool writeBootCommand(int cmd, eboot_flash_command_t *dst) { if (cmd >= EBOOT_COMMAND_MAX_COUNT) { return 0; } +#if defined (EBOOT_ENABLE_SERIAL_DEBUG) ets_putc('w'); ets_putc('b'); ets_putc('0' + cmd); ets_putc('\n'); +#endif uint32_t uint = (uint32_t) cmds; uint32_t addr = (uint32_t)cmds - 0x40200000; addr += cmd * sizeof(*dst); @@ -106,10 +110,12 @@ uint32_t eboot_command_read_from_flash(struct eboot_command *cmd) if (((flash_command.flags & EBOOT_CMD_FLAG_SLOT_FREE) == 0) && ((flash_command.flags & EBOOT_CMD_FLAG_PENDING) == EBOOT_CMD_FLAG_PENDING)) { // Not free (meaning there's some data) and pending (so it's yet to be completed) +#if defined (EBOOT_ENABLE_SERIAL_DEBUG) ets_putc('r'); ets_putc('c'); ets_putc('0' + i); ets_putc('\n'); +#endif src = (uint32_t *)&flash_command.cmd; for (uint32_t j = 0; j < dw_count; ++j) { dst[j] = src[j]; @@ -131,10 +137,12 @@ uint32_t eboot_command_write_to_flash(struct eboot_command *cmd) readBootCommand(i, &flash_command); if (((flash_command.flags & EBOOT_CMD_FLAG_SLOT_FREE) == EBOOT_CMD_FLAG_SLOT_FREE) && ((flash_command.flags & EBOOT_CMD_FLAG_PENDING) == EBOOT_CMD_FLAG_PENDING)) { - ets_putc('w'); - ets_putc('c'); - ets_putc('0' + i); - ets_putc('\n'); +#if defined (EBOOT_ENABLE_SERIAL_DEBUG) + ets_putc('w'); + ets_putc('c'); + ets_putc('0' + i); + ets_putc('\n'); +#endif dst = (uint32_t *)&flash_command.cmd; for (uint32_t j = 0; j < dw_count; ++j) { dst[j] = src[j]; @@ -200,20 +208,28 @@ int eboot_command_read(struct eboot_command* cmd) uint32_t have_command = 0; uint32_t count = 0; #if defined (EBOOT_ENABLE_FLASH_STORAGE) +#if defined (EBOOT_ENABLE_SERIAL_DEBUG) ets_putc('F'); ets_putc(':'); +#endif have_command = eboot_command_read_from_flash(cmd); +#if defined (EBOOT_ENABLE_SERIAL_DEBUG) ets_putc('0' + have_command); ets_putc('\n'); +#endif // EBOOT_ENABLE_SERIAL_DEBUG #endif // EBOOT_ENABLE_FLASH_STORAGE if (have_command == 0) { +#if defined (EBOOT_ENABLE_SERIAL_DEBUG) ets_putc('R'); ets_putc('-'); +#endif eboot_command_read_from_rtc(cmd); count = cmd->args[28]; cmd->args[28] = 0; +#if defined (EBOOT_ENABLE_SERIAL_DEBUG) ets_putc('0' + count); ets_putc('\n'); +#endif } uint32_t crc32 = eboot_command_calculate_crc32(cmd); @@ -223,10 +239,12 @@ int eboot_command_read(struct eboot_command* cmd) } if (count >= 3) { +#if defined (EBOOT_ENABLE_SERIAL_DEBUG) ets_putc('R'); ets_putc('>'); ets_putc('!'); ets_putc('\n'); +#endif return 1; } diff --git a/bootloaders/eboot/eboot_command.h b/bootloaders/eboot/eboot_command.h index dd9b092199..ae11736bee 100644 --- a/bootloaders/eboot/eboot_command.h +++ b/bootloaders/eboot/eboot_command.h @@ -33,7 +33,7 @@ typedef struct eboot_command { #if defined (EBOOT_ENABLE_FLASH_STORAGE) // Magic for version 1 corresponds to AR01 #define EBOOT_INDEX_MAGIC_V1 0x31305241 -#define EBOOT_COMMAND_MAX_COUNT 8 +#define EBOOT_COMMAND_MAX_COUNT 32 #define FLASH_SECTOR_SIZE 0x1000 diff --git a/cores/esp8266/core_esp8266_eboot_command.cpp b/cores/esp8266/core_esp8266_eboot_command.cpp index 4df555b597..ab9d8336f3 100644 --- a/cores/esp8266/core_esp8266_eboot_command.cpp +++ b/cores/esp8266/core_esp8266_eboot_command.cpp @@ -159,7 +159,7 @@ uint32_t eboot_command_write_to_flash(struct eboot_command *cmd) ets_printf("Read bootCommand %d, flags: %x\n", i, flash_command.flags); if (((flash_command.flags & EBOOT_CMD_FLAG_SLOT_FREE) == EBOOT_CMD_FLAG_SLOT_FREE) && ((flash_command.flags & EBOOT_CMD_FLAG_PENDING) == EBOOT_CMD_FLAG_PENDING) && - (flash_command.cmd.magic == 0) + (flash_command.cmd.magic == 0xffffffff) ) { target_command_slot = i; break; diff --git a/cores/esp8266/eboot_command.h b/cores/esp8266/eboot_command.h index 62e20491f2..0d30ab8f3b 100644 --- a/cores/esp8266/eboot_command.h +++ b/cores/esp8266/eboot_command.h @@ -28,7 +28,7 @@ typedef struct eboot_command { #if defined (EBOOT_ENABLE_FLASH_STORAGE) // Magic for version 1 corresponds to AR01 #define EBOOT_INDEX_MAGIC_V1 0x31305241 -#define EBOOT_COMMAND_MAX_COUNT 8 +#define EBOOT_COMMAND_MAX_COUNT 32 #define FLASH_SECTOR_SIZE 0x1000 From 0692c6118e3eabec7a07f1d11067033a9bca569c Mon Sep 17 00:00:00 2001 From: Julian Davison Date: Wed, 20 Nov 2019 18:15:26 +1300 Subject: [PATCH 17/17] :facepalm: moment as the previous merge of master was faulty. --- cores/esp8266/Updater.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/cores/esp8266/Updater.cpp b/cores/esp8266/Updater.cpp index 1780f81f56..d4919c3808 100644 --- a/cores/esp8266/Updater.cpp +++ b/cores/esp8266/Updater.cpp @@ -23,6 +23,7 @@ extern "C" { } extern "C" uint32_t _FS_start; +extern "C" uint32_t _FS_end; extern "C" uint32_t _SKETCH_AREA_end;