1
0
mirror of https://github.com/esphome/esphome.git synced 2025-09-06 21:32:21 +01:00

[esp32] Add config option to execute from PSRAM (#9907)

Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
This commit is contained in:
Clyde Stubbs
2025-08-01 16:07:11 +10:00
committed by GitHub
parent f761404bf6
commit 940a8b43fa
10 changed files with 144 additions and 33 deletions

View File

@@ -329,6 +329,28 @@ class ConfigValidationStep(abc.ABC):
def run(self, result: Config) -> None: ... # noqa: E704
class LoadTargetPlatformValidationStep(ConfigValidationStep):
"""Load target platform step."""
def __init__(self, domain: str, conf: ConfigType):
self.domain = domain
self.conf = conf
def run(self, result: Config) -> None:
if self.conf is None:
result[self.domain] = self.conf = {}
result.add_output_path([self.domain], self.domain)
component = get_component(self.domain)
result[self.domain] = self.conf
path = [self.domain]
CORE.loaded_integrations.add(self.domain)
result.add_validation_step(
SchemaValidationStep(self.domain, path, self.conf, component)
)
class LoadValidationStep(ConfigValidationStep):
"""Load step, this step is called once for each domain config fragment.
@@ -582,16 +604,18 @@ class MetadataValidationStep(ConfigValidationStep):
)
return
for i, part_conf in enumerate(self.conf):
path = self.path + [i]
result.add_validation_step(
SchemaValidationStep(
self.domain, self.path + [i], part_conf, self.comp
)
SchemaValidationStep(self.domain, path, part_conf, self.comp)
)
result.add_validation_step(FinalValidateValidationStep(path, self.comp))
return
result.add_validation_step(
SchemaValidationStep(self.domain, self.path, self.conf, self.comp)
)
result.add_validation_step(FinalValidateValidationStep(self.path, self.comp))
class SchemaValidationStep(ConfigValidationStep):
@@ -628,7 +652,6 @@ class SchemaValidationStep(ConfigValidationStep):
result.set_by_path(self.path, validated)
path_context.reset(token)
result.add_validation_step(FinalValidateValidationStep(self.path, self.comp))
class IDPassValidationStep(ConfigValidationStep):
@@ -909,7 +932,7 @@ def validate_config(
# First run platform validation steps
result.add_validation_step(
LoadValidationStep(target_platform, config[target_platform])
LoadTargetPlatformValidationStep(target_platform, config[target_platform])
)
result.run_validation_steps()