mirror of https://github.com/arendst/Tasmota.git
Refactoring of storing safeboot bin (#19858)
* Folder for storing safeboot is now configurable * Platform 2023.10.06 * Platform 2023.10.12
This commit is contained in:
parent
dfa6f9a771
commit
75ec9da8a2
|
@ -19,6 +19,8 @@ data
|
||||||
unpacked_fs
|
unpacked_fs
|
||||||
unpacked_boards
|
unpacked_boards
|
||||||
tasmota/user_config_override.h
|
tasmota/user_config_override.h
|
||||||
|
variants
|
||||||
|
variants3
|
||||||
build
|
build
|
||||||
build_output/*
|
build_output/*
|
||||||
firmware.map
|
firmware.map
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
"flash_extra_images": [
|
"flash_extra_images": [
|
||||||
[
|
[
|
||||||
"0x10000",
|
"0x10000",
|
||||||
"variants/tasmota/tasmota32-safeboot.bin"
|
"tasmota32-safeboot.bin"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
"flash_extra_images": [
|
"flash_extra_images": [
|
||||||
[
|
[
|
||||||
"0x10000",
|
"0x10000",
|
||||||
"variants/tasmota/tasmota32-safeboot.bin"
|
"tasmota32-safeboot.bin"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
"flash_extra_images": [
|
"flash_extra_images": [
|
||||||
[
|
[
|
||||||
"0x10000",
|
"0x10000",
|
||||||
"variants/tasmota/tasmota32solo1-safeboot.bin"
|
"tasmota32solo1-safeboot.bin"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
"flash_extra_images": [
|
"flash_extra_images": [
|
||||||
[
|
[
|
||||||
"0x10000",
|
"0x10000",
|
||||||
"variants/tasmota/tasmota32c2-safeboot.bin"
|
"tasmota32c2-safeboot.bin"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
"flash_extra_images": [
|
"flash_extra_images": [
|
||||||
[
|
[
|
||||||
"0x10000",
|
"0x10000",
|
||||||
"variants/tasmota/tasmota32c2-safeboot.bin"
|
"tasmota32c2-safeboot.bin"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
"flash_extra_images": [
|
"flash_extra_images": [
|
||||||
[
|
[
|
||||||
"0x10000",
|
"0x10000",
|
||||||
"variants/tasmota/tasmota32c3-safeboot.bin"
|
"tasmota32c3-safeboot.bin"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
"flash_extra_images": [
|
"flash_extra_images": [
|
||||||
[
|
[
|
||||||
"0x10000",
|
"0x10000",
|
||||||
"variants/tasmota/tasmota32c3cdc-safeboot.bin"
|
"tasmota32c3cdc-safeboot.bin"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
"flash_extra_images": [
|
"flash_extra_images": [
|
||||||
[
|
[
|
||||||
"0x10000",
|
"0x10000",
|
||||||
"variants/tasmota/tasmota32c6-safeboot.bin"
|
"tasmota32c6-safeboot.bin"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
"flash_extra_images": [
|
"flash_extra_images": [
|
||||||
[
|
[
|
||||||
"0x10000",
|
"0x10000",
|
||||||
"variants/tasmota/tasmota32c6cdc-safeboot.bin"
|
"tasmota32c6cdc-safeboot.bin"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
"flash_extra_images": [
|
"flash_extra_images": [
|
||||||
[
|
[
|
||||||
"0x10000",
|
"0x10000",
|
||||||
"variants/tasmota/tasmota32s2-safeboot.bin"
|
"tasmota32s2-safeboot.bin"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
"flash_extra_images": [
|
"flash_extra_images": [
|
||||||
[
|
[
|
||||||
"0x10000",
|
"0x10000",
|
||||||
"variants/tasmota/tasmota32s2cdc-safeboot.bin"
|
"tasmota32s2cdc-safeboot.bin"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
"flash_extra_images": [
|
"flash_extra_images": [
|
||||||
[
|
[
|
||||||
"0x10000",
|
"0x10000",
|
||||||
"variants/tasmota/tasmota32s3-safeboot.bin"
|
"tasmota32s3-safeboot.bin"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
"flash_extra_images": [
|
"flash_extra_images": [
|
||||||
[
|
[
|
||||||
"0x10000",
|
"0x10000",
|
||||||
"variants/tasmota/tasmota32s3-safeboot.bin"
|
"tasmota32s3-safeboot.bin"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
|
@ -41,7 +41,7 @@
|
||||||
"flash_extra_images": [
|
"flash_extra_images": [
|
||||||
[
|
[
|
||||||
"0x10000",
|
"0x10000",
|
||||||
"variants/tasmota/tasmota32s3cdc-safeboot.bin"
|
"tasmota32s3cdc-safeboot.bin"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
|
@ -41,7 +41,7 @@
|
||||||
"flash_extra_images": [
|
"flash_extra_images": [
|
||||||
[
|
[
|
||||||
"0x10000",
|
"0x10000",
|
||||||
"variants/tasmota/tasmota32s3cdc-safeboot.bin"
|
"tasmota32s3cdc-safeboot.bin"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
# - 0x1000 | ~\.platformio\packages\framework-arduinoespressif32\tools\sdk\esp32\bin\bootloader_dout_40m.bin
|
# - 0x1000 | ~\.platformio\packages\framework-arduinoespressif32\tools\sdk\esp32\bin\bootloader_dout_40m.bin
|
||||||
# - 0x8000 | ~\Tasmota\.pio\build\<env name>\partitions.bin
|
# - 0x8000 | ~\Tasmota\.pio\build\<env name>\partitions.bin
|
||||||
# - 0xe000 | ~\.platformio\packages\framework-arduinoespressif32\tools\partitions\boot_app0.bin
|
# - 0xe000 | ~\.platformio\packages\framework-arduinoespressif32\tools\partitions\boot_app0.bin
|
||||||
# - 0x10000 | ~\.platformio/packages/framework-arduinoespressif32/variants/tasmota/\<env name>-safeboot.bin
|
# - 0x10000 | ~\Tasmota\<variants_dir>/<env name>-safeboot.bin
|
||||||
# - 0xe0000 | ~\Tasmota\.pio\build\<env name>/firmware.bin
|
# - 0xe0000 | ~\Tasmota\.pio\build\<env name>/firmware.bin
|
||||||
# - 0x3b0000| ~\Tasmota\.pio\build\<env name>/littlefs.bin
|
# - 0x3b0000| ~\Tasmota\.pio\build\<env name>/littlefs.bin
|
||||||
|
|
||||||
|
@ -37,6 +37,13 @@ from SCons.Script import COMMAND_LINE_TARGETS
|
||||||
sys.path.append(join(platform.get_package_dir("tool-esptoolpy")))
|
sys.path.append(join(platform.get_package_dir("tool-esptoolpy")))
|
||||||
import esptool
|
import esptool
|
||||||
|
|
||||||
|
variants_dir = env.BoardConfig().get("build.variants_dir", "")
|
||||||
|
variant = env.BoardConfig().get("build.variant", "")
|
||||||
|
sections = env.subst(env.get("FLASH_EXTRA_IMAGES"))
|
||||||
|
chip = env.get("BOARD_MCU")
|
||||||
|
mcu_build_variant = env.BoardConfig().get("build.variant", "").lower()
|
||||||
|
|
||||||
|
# Copy safeboots firmwares in place when running in Github
|
||||||
github_actions = os.getenv('GITHUB_ACTIONS')
|
github_actions = os.getenv('GITHUB_ACTIONS')
|
||||||
extra_flags = ''.join([element.replace("-D", " ") for element in env.BoardConfig().get("build.extra_flags", "")])
|
extra_flags = ''.join([element.replace("-D", " ") for element in env.BoardConfig().get("build.extra_flags", "")])
|
||||||
build_flags = ''.join([element.replace("-D", " ") for element in env.GetProjectOption("build_flags")])
|
build_flags = ''.join([element.replace("-D", " ") for element in env.GetProjectOption("build_flags")])
|
||||||
|
@ -45,16 +52,31 @@ if "CORE32SOLO1" in extra_flags or "FRAMEWORK_ARDUINO_SOLO1" in build_flags:
|
||||||
FRAMEWORK_DIR = platform.get_package_dir("framework-arduino-solo1")
|
FRAMEWORK_DIR = platform.get_package_dir("framework-arduino-solo1")
|
||||||
if github_actions and os.path.exists("./firmware/firmware"):
|
if github_actions and os.path.exists("./firmware/firmware"):
|
||||||
shutil.copytree("./firmware/firmware", "/home/runner/.platformio/packages/framework-arduino-solo1/variants/tasmota")
|
shutil.copytree("./firmware/firmware", "/home/runner/.platformio/packages/framework-arduino-solo1/variants/tasmota")
|
||||||
|
if variants_dir:
|
||||||
|
shutil.copytree("./firmware/firmware", variants_dir, dirs_exist_ok=True)
|
||||||
elif "CORE32ITEAD" in extra_flags or "FRAMEWORK_ARDUINO_ITEAD" in build_flags:
|
elif "CORE32ITEAD" in extra_flags or "FRAMEWORK_ARDUINO_ITEAD" in build_flags:
|
||||||
FRAMEWORK_DIR = platform.get_package_dir("framework-arduino-ITEAD")
|
FRAMEWORK_DIR = platform.get_package_dir("framework-arduino-ITEAD")
|
||||||
if github_actions and os.path.exists("./firmware/firmware"):
|
if github_actions and os.path.exists("./firmware/firmware"):
|
||||||
shutil.copytree("./firmware/firmware", "/home/runner/.platformio/packages/framework-arduino-ITEAD/variants/tasmota")
|
shutil.copytree("./firmware/firmware", "/home/runner/.platformio/packages/framework-arduino-ITEAD/variants/tasmota")
|
||||||
|
if variants_dir:
|
||||||
|
shutil.copytree("./firmware/firmware", variants_dir, dirs_exist_ok=True)
|
||||||
else:
|
else:
|
||||||
FRAMEWORK_DIR = platform.get_package_dir("framework-arduinoespressif32")
|
FRAMEWORK_DIR = platform.get_package_dir("framework-arduinoespressif32")
|
||||||
if github_actions and os.path.exists("./firmware/firmware"):
|
if github_actions and os.path.exists("./firmware/firmware"):
|
||||||
shutil.copytree("./firmware/firmware", "/home/runner/.platformio/packages/framework-arduinoespressif32/variants/tasmota")
|
shutil.copytree("./firmware/firmware", "/home/runner/.platformio/packages/framework-arduinoespressif32/variants/tasmota")
|
||||||
|
if variants_dir:
|
||||||
|
shutil.copytree("./firmware/firmware", variants_dir, dirs_exist_ok=True)
|
||||||
|
|
||||||
variants_dir = join(FRAMEWORK_DIR, "variants", "tasmota")
|
# Copy pins_arduino.h to variants folder
|
||||||
|
if variants_dir:
|
||||||
|
mcu_build_variant_path = join(FRAMEWORK_DIR, "variants", mcu_build_variant, "pins_arduino.h")
|
||||||
|
custom_variant_build = join(env.subst("$PROJECT_DIR"), variants_dir , mcu_build_variant, "pins_arduino.h")
|
||||||
|
os.makedirs(join(env.subst("$PROJECT_DIR"), variants_dir , mcu_build_variant), exist_ok=True)
|
||||||
|
shutil.copy(mcu_build_variant_path, custom_variant_build)
|
||||||
|
|
||||||
|
if not variants_dir:
|
||||||
|
variants_dir = join(FRAMEWORK_DIR, "variants", "tasmota")
|
||||||
|
env.BoardConfig().update("build.variants_dir", variants_dir)
|
||||||
|
|
||||||
def esp32_detect_flashsize():
|
def esp32_detect_flashsize():
|
||||||
uploader = env.subst("$UPLOADER")
|
uploader = env.subst("$UPLOADER")
|
||||||
|
@ -195,9 +217,7 @@ def esp32_create_combined_bin(source, target, env):
|
||||||
|
|
||||||
|
|
||||||
new_file_name = env.subst("$BUILD_DIR/${PROGNAME}.factory.bin")
|
new_file_name = env.subst("$BUILD_DIR/${PROGNAME}.factory.bin")
|
||||||
sections = env.subst(env.get("FLASH_EXTRA_IMAGES"))
|
|
||||||
firmware_name = env.subst("$BUILD_DIR/${PROGNAME}.bin")
|
firmware_name = env.subst("$BUILD_DIR/${PROGNAME}.bin")
|
||||||
chip = env.get("BOARD_MCU")
|
|
||||||
tasmota_platform = esp32_create_chip_string(chip)
|
tasmota_platform = esp32_create_chip_string(chip)
|
||||||
|
|
||||||
if "-DUSE_USB_CDC_CONSOLE" in env.BoardConfig().get("build.extra_flags") and "cdc" not in tasmota_platform:
|
if "-DUSE_USB_CDC_CONSOLE" in env.BoardConfig().get("build.extra_flags") and "cdc" not in tasmota_platform:
|
||||||
|
@ -274,8 +294,8 @@ def esp32_create_combined_bin(source, target, env):
|
||||||
)
|
)
|
||||||
print("Will use custom upload command for flashing operation to add file system defined for this build target.")
|
print("Will use custom upload command for flashing operation to add file system defined for this build target.")
|
||||||
|
|
||||||
#print('Using esptool.py arguments: %s' % ' '.join(cmd))
|
|
||||||
if("safeboot" not in firmware_name):
|
if("safeboot" not in firmware_name):
|
||||||
|
#print('Using esptool.py arguments: %s' % ' '.join(cmd))
|
||||||
esptool.main(cmd)
|
esptool.main(cmd)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -32,6 +32,7 @@ platform_packages = ${core.platform_packages}
|
||||||
framework = arduino
|
framework = arduino
|
||||||
board = esp8266_1M
|
board = esp8266_1M
|
||||||
board_build.filesystem = littlefs
|
board_build.filesystem = littlefs
|
||||||
|
board_build.variants_dir = variants/tasmota
|
||||||
custom_unpack_dir = unpacked_littlefs
|
custom_unpack_dir = unpacked_littlefs
|
||||||
build_unflags = ${core.build_unflags}
|
build_unflags = ${core.build_unflags}
|
||||||
build_flags = ${core.build_flags}
|
build_flags = ${core.build_flags}
|
||||||
|
|
|
@ -78,7 +78,7 @@ lib_ignore = ${esp32_defaults.lib_ignore}
|
||||||
ccronexpr
|
ccronexpr
|
||||||
|
|
||||||
[core32]
|
[core32]
|
||||||
platform = https://github.com/tasmota/platform-espressif32/releases/download/2023.10.05/platform-espressif32.zip
|
platform = https://github.com/tasmota/platform-espressif32/releases/download/2023.10.06/platform-espressif32.zip
|
||||||
platform_packages =
|
platform_packages =
|
||||||
build_unflags = ${esp32_defaults.build_unflags}
|
build_unflags = ${esp32_defaults.build_unflags}
|
||||||
build_flags = ${esp32_defaults.build_flags}
|
build_flags = ${esp32_defaults.build_flags}
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
; tasmota32c6cdc-safeboot
|
; tasmota32c6cdc-safeboot
|
||||||
|
|
||||||
[core32_30]
|
[core32_30]
|
||||||
platform = https://github.com/tasmota/platform-espressif32/releases/download/2023.10.11/platform-espressif32.zip
|
platform = https://github.com/tasmota/platform-espressif32/releases/download/2023.10.12/platform-espressif32.zip
|
||||||
platform_packages =
|
platform_packages =
|
||||||
|
|
||||||
build_unflags = ${core32.build_unflags}
|
build_unflags = ${core32.build_unflags}
|
||||||
|
@ -50,6 +50,7 @@ framework = ${common.framework}
|
||||||
platform = ${core32_30.platform}
|
platform = ${core32_30.platform}
|
||||||
platform_packages = ${core32_30.platform_packages}
|
platform_packages = ${core32_30.platform_packages}
|
||||||
board_build.filesystem = ${common.board_build.filesystem}
|
board_build.filesystem = ${common.board_build.filesystem}
|
||||||
|
board_build.variants_dir = variants/tasmota_ard3
|
||||||
custom_unpack_dir = ${common.custom_unpack_dir}
|
custom_unpack_dir = ${common.custom_unpack_dir}
|
||||||
board = esp32
|
board = esp32
|
||||||
monitor_speed = 115200
|
monitor_speed = 115200
|
||||||
|
|
|
@ -4,6 +4,7 @@ platform = ${core32.platform}
|
||||||
platform_packages = ${core32.platform_packages}
|
platform_packages = ${core32.platform_packages}
|
||||||
board_build.filesystem = ${common.board_build.filesystem}
|
board_build.filesystem = ${common.board_build.filesystem}
|
||||||
custom_unpack_dir = ${common.custom_unpack_dir}
|
custom_unpack_dir = ${common.custom_unpack_dir}
|
||||||
|
board_build.variants_dir = ${common.board_build.variants_dir}
|
||||||
board = esp32
|
board = esp32
|
||||||
monitor_speed = ${common.monitor_speed}
|
monitor_speed = ${common.monitor_speed}
|
||||||
monitor_echo = ${common.monitor_echo}
|
monitor_echo = ${common.monitor_echo}
|
||||||
|
|
|
@ -223,7 +223,7 @@ bool tasconsole_serial = false;
|
||||||
|
|
||||||
#if ARDUINO_USB_MODE
|
#if ARDUINO_USB_MODE
|
||||||
//#warning **** TasConsole ARDUINO_USB_MODE ****
|
//#warning **** TasConsole ARDUINO_USB_MODE ****
|
||||||
TASCONSOLE TasConsole{USBSerial}; // ESP32C3/C6/S3 embedded USB using JTAG interface
|
TASCONSOLE TasConsole{HWCDCSerial}; // ESP32C3/C6/S3 embedded USB using JTAG interface
|
||||||
//#warning **** TasConsole uses HWCDC ****
|
//#warning **** TasConsole uses HWCDC ****
|
||||||
#else // No ARDUINO_USB_MODE
|
#else // No ARDUINO_USB_MODE
|
||||||
#include "USB.h"
|
#include "USB.h"
|
||||||
|
|
Loading…
Reference in New Issue