Source code for tropicsquare.config.startup

"""Startup configuration (CFG_START_UP @ 0x00)"""

from tropicsquare.config.base import BaseConfig
from tropicsquare.config.constants import (
    STARTUP_MBIST_DIS_BIT,
    STARTUP_RNGTEST_DIS_BIT,
    STARTUP_MAINTENANCE_ENA_BIT
)


[docs] class StartUpConfig(BaseConfig): """Startup configuration register. Controls bootloader behavior including built-in self-tests and maintenance mode. Fields: mbist_dis: Memory built-in self-test disable (bit 1) rngtest_dis: Random number generator test disable (bit 2) maintenance_ena: Maintenance mode enable (bit 3) """ @property def mbist_dis(self) -> bool: """Memory BIST disable flag. When True, memory built-in self-test is disabled during startup. Default: False (BIST enabled) :returns: True if MBIST is disabled """ return bool((self._value >> STARTUP_MBIST_DIS_BIT) & 1) @mbist_dis.setter def mbist_dis(self, value: bool) -> None: if value: self._value |= (1 << STARTUP_MBIST_DIS_BIT) else: self._value &= ~(1 << STARTUP_MBIST_DIS_BIT) @property def rngtest_dis(self) -> bool: """RNG test disable flag. When True, random number generator test is disabled during startup. Default: False (RNG test enabled) :returns: True if RNG test is disabled """ return bool((self._value >> STARTUP_RNGTEST_DIS_BIT) & 1) @rngtest_dis.setter def rngtest_dis(self, value: bool) -> None: if value: self._value |= (1 << STARTUP_RNGTEST_DIS_BIT) else: self._value &= ~(1 << STARTUP_RNGTEST_DIS_BIT) @property def maintenance_ena(self) -> bool: """Maintenance mode enable flag. When True, chip boots into maintenance mode instead of normal application mode. Default: False (normal boot) :returns: True if maintenance mode is enabled """ return bool((self._value >> STARTUP_MAINTENANCE_ENA_BIT) & 1) @maintenance_ena.setter def maintenance_ena(self, value: bool) -> None: if value: self._value |= (1 << STARTUP_MAINTENANCE_ENA_BIT) else: self._value &= ~(1 << STARTUP_MAINTENANCE_ENA_BIT)
[docs] def to_dict(self) -> dict: """Export fields as dictionary. :returns: Configuration fields and their values """ return { 'mbist_dis': self.mbist_dis, 'rngtest_dis': self.rngtest_dis, 'maintenance_ena': self.maintenance_ena }
[docs] def __str__(self) -> str: """Human-readable representation.""" return "StartUpConfig(mbist_dis={}, rngtest_dis={}, maintenance_ena={})".format( self.mbist_dis, self.rngtest_dis, self.maintenance_ena)